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/connection_unittest.cc b/connection_unittest.cc
index 283b069..491cb1f 100644
--- a/connection_unittest.cc
+++ b/connection_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.
 
@@ -52,6 +52,7 @@
       : device_info_(new StrictMock<MockDeviceInfo>(
             &control_,
             static_cast<EventDispatcher*>(NULL),
+            static_cast<Metrics*>(NULL),
             static_cast<Manager*>(NULL))),
         connection_(new Connection(
             kTestDeviceInterfaceIndex0,
@@ -153,6 +154,7 @@
     scoped_refptr<MockDevice> device(new StrictMock<MockDevice>(
         &control_,
         reinterpret_cast<EventDispatcher *>(NULL),
+        reinterpret_cast<Metrics *>(NULL),
         reinterpret_cast<Manager *>(NULL),
         kTestDeviceName0,
         string(),