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/modem_manager_unittest.cc b/modem_manager_unittest.cc
index 6b415a4..0eebd34 100644
--- a/modem_manager_unittest.cc
+++ b/modem_manager_unittest.cc
@@ -36,9 +36,9 @@
                        &glib_),
         proxy_(new MockModemManagerProxy()),
         proxy_factory_(this) {
-    ProxyFactory::set_factory(&proxy_factory_);
   }
 
+  virtual void SetUp();
   virtual void TearDown();
 
  protected:
@@ -76,9 +76,13 @@
 const char ModemManagerTest::kOwner[] = ":1.17";
 const char ModemManagerTest::kModemPath[] = "/org/chromium/ModemManager/Gobi/0";
 
+void ModemManagerTest::SetUp() {
+  modem_manager_.proxy_factory_ = &proxy_factory_;
+}
+
 void ModemManagerTest::TearDown() {
   modem_manager_.watcher_id_ = 0;
-  ProxyFactory::set_factory(NULL);
+  modem_manager_.proxy_factory_ = NULL;
 }
 
 TEST_F(ModemManagerTest, Start) {