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/arm_device.go b/cc/arm_device.go
index 766eea6..1624cfc 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -392,5 +392,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(android.Arm, armToolchainFactory)
+	registerToolchainFactory(android.Android, android.Arm, armToolchainFactory)
 }