Split Modem into ModemClassic and Modem1

Along the way:

  Restructure ModemManagerXxx to use the split modem classes.

  Add new mocks to limit scope of modem tests

  Change modem state enum to a neutral format and convert from MM1 and
  MMClassic to this format.

  Fix a bug where we weren't properly releasing a callback in
  DBusObjectManagerProxy.

  Add new DBus property matchers

BUG=chromium-os:27935,chromium-os:27936
TEST=unit tests

Change-Id: Ib78c7dfd9e30fe556f09a4427fd71c9d785210c9
Reviewed-on: https://gerrit.chromium.org/gerrit/19228
Commit-Ready: David Rochberg <rochberg@chromium.org>
Reviewed-by: David Rochberg <rochberg@chromium.org>
Tested-by: David Rochberg <rochberg@chromium.org>
diff --git a/mock_device_info.h b/mock_device_info.h
index 72352f7..ff7d61e 100644
--- a/mock_device_info.h
+++ b/mock_device_info.h
@@ -38,6 +38,8 @@
   MOCK_CONST_METHOD1(FlushAddresses, void(int interface_index));
   MOCK_CONST_METHOD1(CreateTunnelInterface,  bool(std::string *interface_name));
   MOCK_CONST_METHOD1(DeleteInterface, bool(int interface_index));
+  MOCK_METHOD1(RegisterDevice, void(const DeviceRefPtr &));
+  MOCK_METHOD1(DeregisterDevice, void(const DeviceRefPtr &));
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MockDeviceInfo);