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_cellular.cc b/mock_cellular.cc
new file mode 100644
index 0000000..d19aab0
--- /dev/null
+++ b/mock_cellular.cc
@@ -0,0 +1,28 @@
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "shill/mock_cellular.h"
+
+namespace shill {
+
+// TODO(rochberg): The cellular constructor does work.  Ought to fix
+// this so that we don't depend on passing real values in for Type.
+
+MockCellular::MockCellular(ControlInterface *control_interface,
+                           EventDispatcher *dispatcher,
+                           Metrics *metrics,
+                           Manager *manager,
+                           const std::string &link_name,
+                           const std::string &address,
+                           int interface_index,
+                           Type type,
+                           const std::string &owner,
+                           const std::string &path,
+                           mobile_provider_db *provider_db)
+    : Cellular(control_interface, dispatcher, metrics, manager, link_name,
+               address, interface_index, type, owner, path, provider_db) {}
+
+MockCellular::~MockCellular() {}
+
+}  // namespace shill