Export DefaultsFactory

Add an exported DefaultsFactory so that external module types can extend
cc_defaults.  DefaultsFactory takes a variadic list of additional
property structures.  defaultsFactory remains as the module factory for
cc_defaults.

Change-Id: I03b450ab3a31625e7baca165d393a0007fb3e421
diff --git a/cc/cc.go b/cc/cc.go
index 7984449..801768d 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -888,9 +888,13 @@
 }
 
 func defaultsFactory() (blueprint.Module, []interface{}) {
+	return DefaultsFactory()
+}
+
+func DefaultsFactory(props ...interface{}) (blueprint.Module, []interface{}) {
 	module := &Defaults{}
 
-	propertyStructs := []interface{}{
+	props = append(props,
 		&BaseProperties{},
 		&BaseCompilerProperties{},
 		&BaseLinkerProperties{},
@@ -903,12 +907,12 @@
 		&StlProperties{},
 		&SanitizeProperties{},
 		&StripProperties{},
-	}
+	)
 
-	_, propertyStructs = android.InitAndroidArchModule(module, android.HostAndDeviceDefault,
-		android.MultilibDefault, propertyStructs...)
+	_, props = android.InitAndroidArchModule(module, android.HostAndDeviceDefault,
+		android.MultilibDefault, props...)
 
-	return android.InitDefaultsModule(module, module, propertyStructs...)
+	return android.InitDefaultsModule(module, module, props...)
 }
 
 // lastUniqueElements returns all unique elements of a slice, keeping the last copy of each