Simplify arch target handling

Soong's multi-architecture building has grown complex, with the
combination of HostOrDevice+HostType+Arch necessary to determine how to
build a variant of a module, and three separate mutators to split each
into its variations.

Combine HostOrDevice+HostType into Os, which will be Linux, Darwin,
Windows, or Android.  Store Os+Arch as a single Target.

Change-Id: I92f2e2dac53617d595a35cc285d2bd348baa0fbd
diff --git a/cc/x86_device.go b/cc/x86_device.go
index e47c6fb..f16e68b 100644
--- a/cc/x86_device.go
+++ b/cc/x86_device.go
@@ -286,5 +286,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(android.X86, x86ToolchainFactory)
+	registerToolchainFactory(android.Android, android.X86, x86ToolchainFactory)
 }