Split off rtnl facility from device_info

Create an "rtnl_handler" singleton for conversing with rtnl socket.
Create "listener" objects that hold callbacks to interested parties.

BUG=chromium-os:15804
TEST=Rerun unit tests

Change-Id: Ica845b39ce6a0885a4e6d2560146ff8f5f45b900
Reviewed-on: http://gerrit.chromium.org/gerrit/1632
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/shill_daemon.cc b/shill_daemon.cc
index ebd303f..8e69058 100644
--- a/shill_daemon.cc
+++ b/shill_daemon.cc
@@ -14,6 +14,7 @@
 #include "shill/shill_daemon.h"
 #include "shill/control_interface.h"
 #include "shill/dbus_control.h"
+#include "shill/rtnl_handler.h"
 
 using std::max;
 using std::min;
@@ -34,6 +35,7 @@
 Daemon::~Daemon() {}
 
 void Daemon::Start() {
+  RTNLHandler::GetInstance()->Start(&dispatcher_);
   manager_.Start();
 }