shill: WiFiService: Fix-up old-style WiFi Service entries

Add a utility to upgrade WiFi service entries that don't contain
the "Type", "Mode" or "Security" properties, and only contain
this information in the fields of the storage identifier.  Use
this utility whenever the WiFi device loads a new profile.
Follow-on CLs will clean up all remaining direct callers of
WiFiServce::ParseStorageIdentifier().

BUG=chromium-os:38048
TEST=Unit Tests, inspect chrome://histograms for new histogram
entries when profiles are updated.

Change-Id: I0f1d4e75abc1edfe6da1bbfe68183cab1b1c0021
Reviewed-on: https://gerrit.chromium.org/gerrit/41802
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
diff --git a/metrics.h b/metrics.h
index d189df1..baa7613 100644
--- a/metrics.h
+++ b/metrics.h
@@ -140,6 +140,12 @@
     kDisconnectedNotByAp
   };
 
+  enum ServiceFixupProfileType {
+    kMetricServiceFixupDefaultProfile,
+    kMetricServiceFixupUserProfile,
+    kMetricServiceFixupMax
+  };
+
   enum TerminationActionResult {
     kTerminationActionResultSuccess,
     kTerminationActionResultFailure,
@@ -245,6 +251,9 @@
   static const int kMetricTerminationActionTimeMillisecondsMax;
   static const int kMetricTerminationActionTimeMillisecondsMin;
 
+  // WiFiService Entry Fixup.
+  static const char kMetricServiceFixupEntries[];
+
   Metrics();
   virtual ~Metrics();