shill: Move Metrics from singleton to Shill daemon

While implementing chromium-os:24810, it was discovered that Metrics is
cleaner if it is passed around like ControlInterface, Dispatcher,
Manager, etc.  This approach also makes Metrics more testable.

BUG=chromium-os:24810
TEST=Unit tests, network_WiFiManager suite

Change-Id: I556a1bd11f21f0b93ecfeaae8855dfb99ed5e5f9
Reviewed-on: https://gerrit.chromium.org/gerrit/14099
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index f27c4c7..263775c 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -41,13 +41,15 @@
 
 WiFiService::WiFiService(ControlInterface *control_interface,
                          EventDispatcher *dispatcher,
+                         Metrics *metrics,
                          Manager *manager,
                          const WiFiRefPtr &device,
                          const vector<uint8_t> &ssid,
                          const string &mode,
                          const string &security,
                          bool hidden_ssid)
-    : Service(control_interface, dispatcher, manager, Technology::kWifi),
+    : Service(control_interface, dispatcher, metrics, manager,
+              Technology::kWifi),
       need_passphrase_(false),
       security_(security),
       mode_(mode),