Pass the NetworkChangeNotifier to HostResolver.
This requires the following refactors:
  (1) NetworkChangeNotifier moves out of HttpNetworkSession into IOThread.
  (2) HostResolver gets initialized with NetworkChangeNotifier.
  (3) NetworkChangeNotifier needs to get passed into HttpCache and HttpNetworkSession (required updating a lot of files).
  (4) NetworkChangeNotifier is no longer reference counted.  It is owned by IOThread.
  (5) IOThread gains a new struct: Globals.  It can only be used on the io thread.
  (6) ChromeURLRequestContextFactory uses IOThread::Globals to initialize ChromeURLRequest objects with the host resolver and network change notifier.
BUG=26159

Review URL: http://codereview.chromium.org/552117

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38052 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 24c2dc6..4a5c88c 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -96,7 +96,7 @@
     base::TimeDelta unused_idle_socket_timeout,
     base::TimeDelta used_idle_socket_timeout,
     ConnectJobFactory* connect_job_factory,
-    const scoped_refptr<NetworkChangeNotifier>& network_change_notifier)
+    NetworkChangeNotifier* network_change_notifier)
     : idle_socket_count_(0),
       connecting_socket_count_(0),
       handed_out_socket_count_(0),