Add support for defaults modules

Add a cc_defaults module, which will prepend any matching properties to
modules that reference it with a "defaults" property.

Change-Id: I5908dd98d204f71b29ad95a4ab85403aa1621ca2
diff --git a/common/arch.go b/common/arch.go
index f0f4409..e524dd5 100644
--- a/common/arch.go
+++ b/common/arch.go
@@ -25,6 +25,9 @@
 )
 
 func init() {
+	RegisterBottomUpMutator("defaults_deps", defaultsDepsMutator)
+	RegisterTopDownMutator("defaults", defaultsMutator)
+
 	RegisterBottomUpMutator("host_or_device", HostOrDeviceMutator)
 	RegisterBottomUpMutator("arch", ArchMutator)
 }
@@ -383,13 +386,11 @@
 	}
 }
 
-func InitArchModule(m AndroidModule, defaultMultilib Multilib,
+func InitArchModule(m AndroidModule,
 	propertyStructs ...interface{}) (blueprint.Module, []interface{}) {
 
 	base := m.base()
 
-	base.commonProperties.Compile_multilib = string(defaultMultilib)
-
 	base.generalProperties = append(base.generalProperties,
 		propertyStructs...)