Add arch features

Allow architecture toolchains to register "features" supported by the
current variant, and then apply properties from the selected features.
Equivalent to the ARCH_*_HAS_* variables in the combo makefiles.

Change-Id: Ib6823be1c1a52da677d081db9f24336a072eaf39
diff --git a/cc/cc.go b/cc/cc.go
index aa10d72..d65b8db 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -412,7 +412,7 @@
 		ctx.ModuleErrorf("Toolchain not found for %s arch %q", hod.String(), arch.String())
 		return nil
 	}
-	return factory(arch.ArchVariant, arch.CpuVariant)
+	return factory(arch)
 }
 
 func (c *CCBase) ModifyProperties(ctx CCModuleContext) {