shill: Don't create DHCP and Modem D-Bus proxies in signal callbacks.

dbus-c++ doesn't allow proxy creation in signal callbacks so create them in
deferred tasks instead.

BUG=chromium-os:18228
TEST=unit tests, tested on device

Change-Id: I4f85ab937aef99ef4556c5a3c16af913d8fa08fd
Reviewed-on: http://gerrit.chromium.org/gerrit/4827
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
diff --git a/shill_daemon.h b/shill_daemon.h
index 17e687b..37906dd 100644
--- a/shill_daemon.h
+++ b/shill_daemon.h
@@ -7,7 +7,9 @@
 
 #include <string>
 
+#include "shill/glib.h"
 #include "shill/manager.h"
+#include "shill/proxy_factory.h"
 #include "shill/shill_event.h"
 #include "shill/sockets.h"
 
@@ -19,23 +21,24 @@
 
 class Daemon {
  public:
-  Daemon(Config *config, ControlInterface *control, GLib *glib);
+  Daemon(Config *config, ControlInterface *control);
   ~Daemon();
 
   void AddDeviceToBlackList(const std::string &device_name);
-  void Start();
   void Run();
 
  private:
   friend class ShillDaemonTest;
 
-  ControlInterface *CreateControl();
+  void Start();
 
   Config *config_;
   ControlInterface *control_;
   Manager manager_;
   EventDispatcher dispatcher_;
   Sockets sockets_;
+  GLib glib_;
+  ProxyFactory proxy_factory_;
 };
 
 }  // namespace shill