Move away from Singleton

Move from Singleton to LazyInstance for one-of classes in Shill.
This will allow them to be subclassed (mocked).

BUG=chromium-os:18986
TEST=Re-run unit tests

Change-Id: I83320694db5df1a263332315ad4f6955b107280b
Reviewed-on: http://gerrit.chromium.org/gerrit/5676
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/rtnl_handler.cc b/rtnl_handler.cc
index 185275f..d9d8024 100644
--- a/rtnl_handler.cc
+++ b/rtnl_handler.cc
@@ -31,6 +31,9 @@
 
 namespace shill {
 
+static base::LazyInstance<RTNLHandler> g_rtnl_handler(
+    base::LINKER_INITIALIZED);
+
 RTNLHandler::RTNLHandler()
     : sockets_(NULL),
       in_request_(false),
@@ -47,7 +50,7 @@
 }
 
 RTNLHandler* RTNLHandler::GetInstance() {
-  return Singleton<RTNLHandler>::get();
+  return g_rtnl_handler.Pointer();
 }
 
 void RTNLHandler::Start(EventDispatcher *dispatcher, Sockets *sockets) {