Fix product variables with no soong.variables

If soong.variables didn't exist, loadFromConfigFile would write default
values to soong.variables, but return with the product variables set to
the zero values.  Replace jsonConfigurable.DefaultConfig() with
SetDefaultConfig() that modifies the current object, and call it before
writing the values.

Change-Id: I7b7404c7a51975dc4493e25c775b3cf56ef335e3
diff --git a/common/config.go b/common/config.go
index a7675b9..1cd75d3 100644
--- a/common/config.go
+++ b/common/config.go
@@ -32,9 +32,8 @@
 type FileConfigurableOptions struct {
 }
 
-func (FileConfigurableOptions) DefaultConfig() jsonConfigurable {
-	f := FileConfigurableOptions{}
-	return f
+func (f *FileConfigurableOptions) SetDefaultConfig() {
+	*f = FileConfigurableOptions{}
 }
 
 type Config struct {
@@ -58,7 +57,7 @@
 }
 
 type jsonConfigurable interface {
-	DefaultConfig() jsonConfigurable
+	SetDefaultConfig()
 }
 
 func loadConfig(config *config) error {
@@ -80,7 +79,8 @@
 		// a dependency tracking loop.
 		// Make a file-configurable-options with defaults, write it out using
 		// a json writer.
-		err = saveToConfigFile(configurable.DefaultConfig(), filename)
+		configurable.SetDefaultConfig()
+		err = saveToConfigFile(configurable, filename)
 		if err != nil {
 			return err
 		}