shill: dbus_properties: Convert to callbacks instead of delegates

Use callbacks instead of proxies on the DBusPropertiesProxyInterface.
This makes the class consistent with the other proxies used for
cellular support, and in subsequent CLs will allow access to the
GetAll function without having to implement the Delegate interface.

Add a GetStrings method to dbus_properties.

BUG=none
TEST=run unit tests, run on a machine validate that changes in signal
strength are noticed.

Change-Id: I23e47f011c39a23f406ef62a52a5a613e55c55ed
Reviewed-on: https://gerrit.chromium.org/gerrit/20640
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Jason Glasgow <jglasgow@chromium.org>
Commit-Ready: Jason Glasgow <jglasgow@chromium.org>
diff --git a/modem.h b/modem.h
index f447ebe..337c81e 100644
--- a/modem.h
+++ b/modem.h
@@ -30,7 +30,7 @@
 
 // Handles an instance of ModemManager.Modem and an instance of a Cellular
 // device.
-class Modem : public DBusPropertiesProxyDelegate {
+class Modem {
  public:
   // |owner| is the ModemManager DBus service owner (e.g., ":1.17"). |path| is
   // the ModemManager.Modem DBus object path (e.g.,
@@ -94,7 +94,6 @@
   FRIEND_TEST(ModemTest, Init);
   FRIEND_TEST(ModemTest, PendingDevicePropertiesAndCreate);
 
-  // Signal callbacks inherited from DBusPropertiesProxyDelegate.
   virtual void OnDBusPropertiesChanged(
       const std::string &interface,
       const DBusPropertiesMap &changed_properties,