[network service] Add a NetworkChangeManager interface

This CL adds an interface to allow consumers to subscribe/unsubscribe
to network change events.

- mojom::NetworkChangeManager
  Listens to net::NetworkChangeNotifier and propagate notifications to
  mojom::NetworkChangeManagerClient.
  NetworkService will have a pointer to the impl of this interface.

- mojom::NetworkChangeManagerClient
  The implementation of this interface(content::NetworkConnectionTracker)
  receives notifications from mojom::NetworkChangeManager, and then sends
  those down to its observers.

Design doc:
https://docs.google.com/document/d/1kBp_vTIH-1Jx4M9DN7mnqRRyUmeHe3BZ1NqTbsJ4_S8/edit

Bug: 754709
Change-Id: Ia98dc41da9bb618fd00adfd6412d70d839cd13bb
Reviewed-on: https://chromium-review.googlesource.com/644352
Commit-Queue: Helen Li <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Reviewed-by: Paul Jensen <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Cr-Commit-Position: refs/heads/master@{#510117}
diff --git a/net/BUILD.gn b/net/BUILD.gn
index a1fc7125..810a9e93 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -2491,6 +2491,8 @@
     "base/load_timing_info_test_util.h",
     "base/mock_file_stream.cc",
     "base/mock_file_stream.h",
+    "base/mock_network_change_notifier.cc",
+    "base/mock_network_change_notifier.h",
     "base/test_completion_callback.cc",
     "base/test_completion_callback.h",
     "cert/mock_cert_verifier.cc",
@@ -4631,8 +4633,6 @@
     "base/lookup_string_in_fixed_set_unittest.cc",
     "base/mime_sniffer_unittest.cc",
     "base/mime_util_unittest.cc",
-    "base/mock_network_change_notifier.cc",
-    "base/mock_network_change_notifier.h",
     "base/net_string_util_unittest.cc",
     "base/network_activity_monitor_unittest.cc",
     "base/network_change_notifier_unittest.cc",