Add components/network_session_configurator.

Factor out IOThread::NetworkSessionConfigurator to
components/network_session_configurator.

Remove duplicate code from IOSChromeIOThread, use
components/network_session_configurator instead.

Move all command line switches required by
components/network_session_configurator to this component.  Note that
currently command line switches are ignored.  To preserve this behavior,
this CL calls network_session_configurator::ParseFieldTrials() from
IOSChromeIOThread, which also ignores command line switches.

Background: IOThread was forked to IOSChromeIOThread as part of an effort to
remove the dependency of //ios on //chrome.  However, field trial and command
line parsing logic is shared.  This CL refactors said logic from IOThread and
from IOSChromeIOThread to //components and removes code duplication.

BUG=586616

Review-Url: https://codereview.chromium.org/1892123003
Cr-Commit-Position: refs/heads/master@{#395540}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 530b972..ae8829c 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -150,6 +150,7 @@
     "//components/metrics_services_manager",
     "//components/mime_util",
     "//components/navigation_metrics",
+    "//components/network_session_configurator",
     "//components/network_time",
     "//components/ntp_snippets",
     "//components/ntp_tiles",