[shill] Add properties to Manager, Device and subclasses. Clean up unit tests

1) Pull much of the properties stuff (the maps, Register*(), Contains()) up
   into PropertyStore, and make it a class, not an interface.
2) Add proper property stuff to Manager and Device.  Move Cellular- and Wifi-
   specific properties to Cellular, CellularService, WiFi, WiFiService as
   appropriate.
3) clean up unit tests.

BUG=chromium-os:16343
TEST=unit tests

Change-Id: Iba88f384a5fbe383608cb79fa2134d978f1b81e8
Reviewed-on: http://gerrit.chromium.org/gerrit/3136
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/dbus_adaptor.cc b/dbus_adaptor.cc
index 748832c..e93efd7 100644
--- a/dbus_adaptor.cc
+++ b/dbus_adaptor.cc
@@ -11,7 +11,7 @@
 
 #include "shill/dbus_adaptor.h"
 #include "shill/error.h"
-#include "shill/property_store_interface.h"
+#include "shill/property_store.h"
 
 using std::map;
 using std::string;
@@ -31,7 +31,7 @@
 DBusAdaptor::~DBusAdaptor() {}
 
 // static
-bool DBusAdaptor::DispatchOnType(PropertyStoreInterface *store,
+bool DBusAdaptor::DispatchOnType(PropertyStore *store,
                                  const string &name,
                                  const ::DBus::Variant &value,
                                  ::DBus::Error &error) {
@@ -124,6 +124,15 @@
 }
 
 // static
+::DBus::Variant DBusAdaptor::StringmapsToVariant(
+    const vector<map<string, string> > &value) {
+  ::DBus::Variant v;
+  ::DBus::MessageIter writer = v.writer();
+  writer << value;
+  return v;
+}
+
+// static
 ::DBus::Variant DBusAdaptor::StringsToVariant(const vector<string> &value) {
   ::DBus::Variant v;
   ::DBus::MessageIter writer = v.writer();