shill: Convert DHCP Proxy to use a model similar to Supplicant and ModemManager.

Also, don't create a DBus connection for each proxy since this doesn't work in
some event callbacks and wastes resources. Instead use a shared connection
provided by the ProxyFactory.

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

Change-Id: I4d16b430783c1159501c0414ef3b846bce1a4c0e
Reviewed-on: http://gerrit.chromium.org/gerrit/4279
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
diff --git a/dhcp_config.h b/dhcp_config.h
index e7459d8..3bec003 100644
--- a/dhcp_config.h
+++ b/dhcp_config.h
@@ -7,7 +7,7 @@
 
 #include <base/file_path.h>
 #include <base/memory/scoped_ptr.h>
-#include <dbus-c++/connection.h>
+#include <dbus-c++/types.h>
 #include <glib.h>
 #include <gtest/gtest_prod.h>  // for FRIEND_TEST
 
@@ -35,7 +35,7 @@
 
   // If |proxy_| is not initialized already, sets it to a new D-Bus proxy to
   // |service|.
-  void InitProxy(DBus::Connection *connection, const char *service);
+  void InitProxy(const char *service);
 
   // Processes an Event signal from dhcpcd.
   void ProcessEventSignal(const std::string &reason,