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/cellular.cc b/cellular.cc
index 3410645..f3e9d37 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -193,6 +193,9 @@
     case kTypeCDMA:
       capability_.reset(new CellularCapabilityCDMA(this, proxy_factory));
       break;
+    case kTypeUniversal:
+      LOG(ERROR) << "Cannot InitCapability on MM1 modem";
+      break;
     default: NOTREACHED();
   }
 }