[set] Support specifying --packages with no --product in set

This reinstates support for saying:

fx set x64 --packages ...

with no product specified by making the available/preinstall/monolith
assignments check if the variables are already defined before appending
to them.

BLD-240 #comment restore 'fx set x64 --packages ..' with no product

Change-Id: I9822280763e66ea1b1fb2a9b23f22a3e979a7468
diff --git a/devshell/set b/devshell/set
index 2d95010..53861bf 100755
--- a/devshell/set
+++ b/devshell/set
@@ -440,15 +440,21 @@
   done
   gn_args+="]"
 
+  gn_args+=" if (!defined(available)) { available = [] }"
   gn_args+=" available+=["
   for package in ${available[@]}; do
     gn_args+="\"${package}\","
   done
-  gn_args+="] preinstall+=["
+  gn_args+="]"
+
+  gn_args+=" if (!defined(preinstall)) { preinstall = [] }"
+  gn_args+=" preinstall+=["
   for package in ${preinstall[@]}; do
     gn_args+="\"${package}\","
   done
-  gn_args+="] monolith+=["
+  gn_args+="]"
+  gn_args+=" if (!defined(monolith)) { monolith = [] }"
+  gn_args+=" monolith+=["
   for package in ${monolith[@]}; do
     gn_args+="\"${package}\","
   done