shill: Convert ProxyFactory singleton to LazyInstance.

This makes it consistent with the rest of shill's singletons (DHCPProvider,
Resolver, RoutingTable, RTNLHandler) and improves static object's memory
management.

BUG=chromium-os:19178
TEST=unit tests, tested in a VM

Change-Id: Ib403d31473360b46dd25d12508c799cbc73368fd
Reviewed-on: http://gerrit.chromium.org/gerrit/8861
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/dhcp_provider.cc b/dhcp_provider.cc
index e632328..f8f4398 100644
--- a/dhcp_provider.cc
+++ b/dhcp_provider.cc
@@ -19,7 +19,8 @@
     base::LINKER_INITIALIZED);
 
 DHCPProvider::DHCPProvider()
-    : control_interface_(NULL),
+    : proxy_factory_(ProxyFactory::GetInstance()),
+      control_interface_(NULL),
       dispatcher_(NULL),
       glib_(NULL) {
   VLOG(2) << __func__;
@@ -37,8 +38,7 @@
                         EventDispatcher *dispatcher,
                         GLib *glib) {
   VLOG(2) << __func__;
-  listener_.reset(
-      new DHCPCDListener(ProxyFactory::factory()->connection(), this));
+  listener_.reset(new DHCPCDListener(proxy_factory_->connection(), this));
   glib_ = glib;
   control_interface_ = control_interface;
   dispatcher_ = dispatcher;