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_dbus_objectmanager_proxy.cc b/mock_dbus_objectmanager_proxy.cc
index ca30e23..30b6238 100644
--- a/mock_dbus_objectmanager_proxy.cc
+++ b/mock_dbus_objectmanager_proxy.cc
@@ -4,10 +4,16 @@
 
 #include "shill/mock_dbus_objectmanager_proxy.h"
 
-namespace shill {
+using ::testing::_;
+using ::testing::AnyNumber;
 
+namespace shill {
 MockDBusObjectManagerProxy::MockDBusObjectManagerProxy() {}
 
 MockDBusObjectManagerProxy::~MockDBusObjectManagerProxy() {}
 
+void MockDBusObjectManagerProxy::IgnoreSetCallbacks() {
+  EXPECT_CALL(*this, set_interfaces_added_callback(_)).Times(AnyNumber());
+  EXPECT_CALL(*this, set_interfaces_removed_callback(_)).Times(AnyNumber());
+}
 }  // namespace shill