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/mock_wifi_service.cc b/mock_wifi_service.cc
index 9dd6e5b..0066d73 100644
--- a/mock_wifi_service.cc
+++ b/mock_wifi_service.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -15,6 +15,7 @@
 
 MockWiFiService::MockWiFiService(ControlInterface *control_interface,
                                  EventDispatcher *dispatcher,
+                                 Metrics *metrics,
                                  Manager *manager,
                                  const WiFiRefPtr &device,
                                  const vector<uint8_t> &ssid,
@@ -22,8 +23,8 @@
                                  const string &security,
                                  bool hidden_ssid)
     : WiFiService(
-        control_interface, dispatcher, manager, device, ssid, mode, security,
-        hidden_ssid) {}
+        control_interface, dispatcher, metrics, manager, device, ssid, mode,
+        security, hidden_ssid) {}
 
 MockWiFiService::~MockWiFiService() {}