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_proxy_interface.h b/dhcp_proxy_interface.h
index 275a91b..239095e 100644
--- a/dhcp_proxy_interface.h
+++ b/dhcp_proxy_interface.h
@@ -9,18 +9,14 @@
 
 namespace shill {
 
-// These are the functions that a DHCP proxy and listener must support.
+// These are the methods that a DHCP proxy must support. The interface is
+// provided so that it can be mocked in tests.
 class DHCPProxyInterface {
  public:
   virtual ~DHCPProxyInterface() {}
 
-  virtual void DoRebind(const std::string &interface) = 0;
-  virtual void DoRelease(const std::string &interface) = 0;
-};
-
-class DHCPListenerInterface {
- public:
-  virtual ~DHCPListenerInterface() {}
+  virtual void Rebind(const std::string &interface) = 0;
+  virtual void Release(const std::string &interface) = 0;
 };
 
 }  // namespace shill