Split ios/chrome/app/startup targets to reduce dependencies.

This CL splits the startup targets to separate those without
/ios/chrome/browser/ dependencies. Showcase would prefer not to have a
large dependency tree, so it uses the startup_basic target.

This change removes ~2000 build steps from a clean Showcase build, but
chrome_paths still transitively depends on several large components
(sync, etc) even though it's only getting a single constant from gcm_driver.

BUG=

Review-Url: https://codereview.chromium.org/2661183002
Cr-Commit-Position: refs/heads/master@{#470304}
diff --git a/ios/chrome/browser/BUILD.gn b/ios/chrome/browser/BUILD.gn
index de6beb48..7779b47 100644
--- a/ios/chrome/browser/BUILD.gn
+++ b/ios/chrome/browser/BUILD.gn
@@ -8,6 +8,20 @@
 import("//rlz/features/features.gni")
 import("//third_party/protobuf/proto_library.gni")
 
+source_set("chrome_paths") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "chrome_paths.h",
+    "chrome_paths.mm",
+    "chrome_paths_internal.h",
+  ]
+
+  deps = [
+    "//base",
+    "//components/gcm_driver",
+  ]
+}
+
 source_set("browser") {
   configs += [ "//build/config/compiler:enable_arc" ]
   sources = [
@@ -25,9 +39,6 @@
     "chrome_constants.h",
     "chrome_coordinator.h",
     "chrome_coordinator.mm",
-    "chrome_paths.h",
-    "chrome_paths.mm",
-    "chrome_paths_internal.h",
     "chrome_root_coordinator.h",
     "chrome_root_coordinator.mm",
     "chrome_switches.cc",
@@ -66,6 +77,7 @@
     "xcallback_parameters.h",
     "xcallback_parameters.mm",
   ]
+
   deps = [
     ":settings_resources",
     "//base",
@@ -74,7 +86,6 @@
     "//components/dom_distiller/core",
     "//components/flags_ui",
     "//components/flags_ui:switches",
-    "//components/gcm_driver",
     "//components/handoff",
     "//components/keyed_service/core",
     "//components/keyed_service/ios",
@@ -112,6 +123,9 @@
     "//rlz/features",
     "//url",
   ]
+  public_deps = [
+    ":chrome_paths",
+  ]
   allow_circular_includes_from = [
     "//ios/chrome/browser/sync/glue",
     "//ios/chrome/browser/browser_state",