shill: device: add Type property like flimflam

Add a Type property to mimic the flimflam interfaces.  The type fields
is used in autotests to be able to search for devices of a particular
type.

BUG=chromium-os:25567
TEST=run network_3GModemPresent

Change-Id: I502b8b4225ccb4500bb3b727c822b042a0628f56
Reviewed-on: https://gerrit.chromium.org/gerrit/14942
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Jason Glasgow <jglasgow@chromium.org>
diff --git a/device.h b/device.h
index 20c4cf3..b92ef75 100644
--- a/device.h
+++ b/device.h
@@ -105,6 +105,7 @@
   const ConnectionRefPtr &connection() const { return connection_; }
   bool powered() const { return powered_; }
   virtual Technology::Identifier technology() const { return technology_; }
+  std::string GetTechnologyString(Error *error);
 
   const std::string &FriendlyName() const;
 
@@ -172,6 +173,10 @@
   // "failure")
   void SetServiceFailure(Service::ConnectFailure failure_state);
 
+  void HelpRegisterDerivedString(
+      const std::string &name,
+      std::string(Device::*get)(Error *),
+      void(Device::*set)(const std::string&, Error *));
   void HelpRegisterDerivedStrings(const std::string &name,
                                   Strings(Device::*get)(Error *),
                                   void(Device::*set)(const Strings&, Error *));