[shill] Enable default profile to persist device info

Make Profile::Save() take a pointer to a vector of DeviceRefPtrs.  The base
implementation ignores this pointer, but the DefaultProfile implementation
persists all the devices to disk.

BUG=chromium-os:17254
TEST=unit
STATUS=Verified

Change-Id: I5d72bd2319edfb9ae57366cbd5c766b558ffc8a4
Reviewed-on: http://gerrit.chromium.org/gerrit/8057
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
diff --git a/device_info.cc b/device_info.cc
index 611e039..3517a96 100644
--- a/device_info.cc
+++ b/device_info.cc
@@ -21,6 +21,7 @@
 #include <base/logging.h>
 #include <base/memory/scoped_ptr.h>
 #include <base/stl_util-inl.h>
+#include <base/string_util.h>
 #include <base/stringprintf.h>
 
 #include "shill/control_interface.h"
@@ -186,7 +187,8 @@
         technology = GetDeviceTechnology(link_name);
       }
     }
-    string address = infos_[dev_index].mac_address.HexEncode();
+    string address =
+        StringToLowerASCII(infos_[dev_index].mac_address.HexEncode());
     switch (technology) {
       case Device::kCellular:
         // Cellular devices are managed by ModemInfo.