shill: vpn: Use Mapped custom accessor for properties

VPN services simply ask their drivers to populate their PropertyStore.
VPN drivers use CustomMapped accessors to make their KeyValueStore
available.

BUG=chromium-os:28303,chromium-os:28223
TEST=New unit tests

Change-Id: I05a4f2c09ddd03b40b947274fd38572da5d6dbdc
Reviewed-on: https://gerrit.chromium.org/gerrit/18989
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/vpn_service.cc b/vpn_service.cc
index e2583fe..7e99962 100644
--- a/vpn_service.cc
+++ b/vpn_service.cc
@@ -80,4 +80,8 @@
       driver_->Save(storage, GetStorageIdentifier());
 }
 
+void VPNService::InitDriverPropertyStore() {
+  driver_->InitPropertyStore(mutable_store());
+}
+
 }  // namespace shill