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/modem_manager_unittest.cc b/modem_manager_unittest.cc
index 74f0f34..c2362cf 100644
--- a/modem_manager_unittest.cc
+++ b/modem_manager_unittest.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.
 
@@ -10,6 +10,7 @@
 #include "shill/mock_control.h"
 #include "shill/mock_glib.h"
 #include "shill/mock_manager.h"
+#include "shill/mock_metrics.h"
 #include "shill/mock_modem_manager_proxy.h"
 #include "shill/modem.h"
 #include "shill/modem_manager.h"
@@ -27,11 +28,12 @@
 class ModemManagerTest : public Test {
  public:
   ModemManagerTest()
-      : manager_(&control_interface_, &dispatcher_, &glib_),
+      : manager_(&control_interface_, &dispatcher_, &metrics_, &glib_),
         modem_manager_(kService,
                        kPath,
                        &control_interface_,
                        &dispatcher_,
+                       &metrics_,
                        &manager_,
                        &glib_,
                        NULL),
@@ -66,6 +68,7 @@
   MockGLib glib_;
   MockControl control_interface_;
   EventDispatcher dispatcher_;
+  MockMetrics metrics_;
   MockManager manager_;
   ModemManager modem_manager_;
   scoped_ptr<MockModemManagerProxy> proxy_;