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: Iae677eff61a851b65a7192a47f2dc17c1abb4160
diff --git a/genrule/genrule.go b/genrule/genrule.go
index a195b24..a50af1c 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -97,8 +97,7 @@
 	if g, ok := ctx.Module().(*generator); ok {
 		if g.properties.Tool != "" {
 			ctx.AddFarVariationDependencies([]blueprint.Variation{
-				{"host_or_device", android.Host.String()},
-				{"host_type", android.CurrentHostType().String()},
+				{"arch", ctx.AConfig().BuildOsVariant},
 			}, nil, g.properties.Tool)
 		}
 	}