pw_build: Fix target set_defaults() compatibility

A project may set default configs on targets such as source_set,
executable. This currently causes an error due to assigning a nonempty
list. Fix it by adding pigweed configs instead of assigning.

Change-Id: I06f7175c976c976f9505b6523141b2f280f50ff6
diff --git a/pw_build/target_types.gni b/pw_build/target_types.gni
index 8a934e6..51c094a 100644
--- a/pw_build/target_types.gni
+++ b/pw_build/target_types.gni
@@ -48,11 +48,12 @@
   source_set(target_name) {
     forward_variables_from(invoker, "*", _supported_toolchain_defaults)
 
-    if (defined(pw_build_defaults.configs)) {
-      configs = pw_build_defaults.configs
-    } else {
+    if (!defined(configs)) {
       configs = []
     }
+    if (defined(pw_build_defaults.configs)) {
+      configs += pw_build_defaults.configs
+    }
     if (defined(remove_configs)) {
       if (remove_configs[0] == "*") {
         configs = []
@@ -88,11 +89,12 @@
   static_library(target_name) {
     forward_variables_from(invoker, "*", _supported_toolchain_defaults)
 
-    if (defined(pw_build_defaults.configs)) {
-      configs = pw_build_defaults.configs
-    } else {
+    if (!defined(configs)) {
       configs = []
     }
+    if (defined(pw_build_defaults.configs)) {
+      configs += pw_build_defaults.configs
+    }
     if (defined(remove_configs)) {
       if (remove_configs[0] == "*") {
         configs = []
@@ -128,11 +130,12 @@
   shared_library(target_name) {
     forward_variables_from(invoker, "*", _supported_toolchain_defaults)
 
-    if (defined(pw_build_defaults.configs)) {
-      configs = pw_build_defaults.configs
-    } else {
+    if (!defined(configs)) {
       configs = []
     }
+    if (defined(pw_build_defaults.configs)) {
+      configs += pw_build_defaults.configs
+    }
     if (defined(remove_configs)) {
       if (remove_configs[0] == "*") {
         configs = []
@@ -170,11 +173,12 @@
   target(pw_build_EXECUTABLE_TARGET_TYPE, target_name) {
     forward_variables_from(invoker, "*", _supported_toolchain_defaults)
 
-    if (defined(pw_build_defaults.configs)) {
-      configs = pw_build_defaults.configs
-    } else {
+    if (!defined(configs)) {
       configs = []
     }
+    if (defined(pw_build_defaults.configs)) {
+      configs += pw_build_defaults.configs
+    }
     if (defined(remove_configs)) {
       if (remove_configs[0] == "*") {
         configs = []