Create MM1 object and start to talk to it.

TEST=unit tests.  sees mm-next and modems attached to it
BUG=chromium-os:27014

Change-Id: I31cab744d326ab8c2c8ea320e5bb72bf87decb85
Reviewed-on: https://gerrit.chromium.org/gerrit/17410
Commit-Ready: David Rochberg <rochberg@chromium.org>
Reviewed-by: David Rochberg <rochberg@chromium.org>
Tested-by: David Rochberg <rochberg@chromium.org>
diff --git a/modem_info.h b/modem_info.h
index 3a5c6fd..1d98dea 100644
--- a/modem_info.h
+++ b/modem_info.h
@@ -47,10 +47,9 @@
   static const char kCromoPath[];
   static const char kMobileProviderDBPath[];
 
-  // Registers a new ModemManager service handler and starts it.
-  void RegisterModemManager(const std::string &service,
-                            const std::string &path);
-
+  // Register and start new ModemManagers
+  template <class mm> void RegisterModemManager(const std::string &service,
+                                                const std::string &path);
   ModemManagers modem_managers_;
 
   ControlInterface *control_interface_;