[shill] Use flimflam-esque storage ids

Devices:
  device_<MAC>

IPConfig:
  ipconfig_<MAC of associated device>_0

Services:
  ethernet_<MAC of associated device>
  wifi_<MAC of associated device>_<SSID>_<mode>_<security>
  cellular_<MAC of associated device>_<Network_name>

BUG=chromium-os:17744
TEST=unit

Change-Id: Ibf061f9c184e7c86f5afcf97d48e321fc74bde1c
Reviewed-on: http://gerrit.chromium.org/gerrit/6412
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/device.h b/device.h
index 7f9fbfb..008d370 100644
--- a/device.h
+++ b/device.h
@@ -138,7 +138,8 @@
   // Right now, Devices reference IPConfigs directly when persisted to disk
   // It's not clear that this makes sense long-term, but that's how it is now.
   // This call generates a string in the right format for this persisting.
-  std::string SerializeIPConfigsForStorage();
+  // |suffix| is injected into the storage identifier used for the configs.
+  std::string SerializeIPConfigs(const std::string &suffix);
 
   std::vector<std::string> AvailableIPConfigs();
   std::string GetRpcConnectionIdentifier();