shill: Use carrier based unique id to identify a service's storage.

Current shill stores user data pertaining to a cellular services managed
by CellularCapabilityUniversal by using the IMSI read from the SIM. This
CL fixes this by assigning a unique identifier to each carrier, which is
obtained from CellularOperatorInfo via operator id.

BUG=chrome-os-partner:15268
TEST=Build and run unittests.

Change-Id: I3880daeca65fed4ef441e87eea8657935ee38764
Reviewed-on: https://gerrit.chromium.org/gerrit/41804
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Arman Uguray <armansito@chromium.org>
Tested-by: Arman Uguray <armansito@chromium.org>
diff --git a/cellular_service.h b/cellular_service.h
index fac61a9..8af31e1 100644
--- a/cellular_service.h
+++ b/cellular_service.h
@@ -110,9 +110,11 @@
   virtual bool IsAutoConnectable(const char **reason) const;
 
  private:
+  friend class CellularCapabilityUniversalTest;
   friend class CellularServiceTest;
   FRIEND_TEST(CellularCapabilityGSMTest, SetupApnTryList);
   FRIEND_TEST(CellularCapabilityTest, TryApns);
+  FRIEND_TEST(CellularCapabilityUniversalTest, UpdateStorageIdentifier);
   FRIEND_TEST(CellularTest, Connect);
   FRIEND_TEST(CellularServiceTest, SetApn);
   FRIEND_TEST(CellularServiceTest, ClearApn);