shill: Basic VPN service framework.

The manager uses a VPNProvider (similar to DeviceInfo and ModemInfo) to manage
VPN services. For each VPN service the VPNProvider instantiates an appropriate
VPNDriver (e.g., OpenVPNDriver) based on the service arguments and associates it
with the generic VPN service.

BUG=chromium-os:26835,chromium-os:26836,chromium-os:26838,chromium-os:26839
TEST=unit tests

Change-Id: Ia1bdbe49ecbb6d5b50a732dcef4a15e1feaa4f69
Reviewed-on: https://gerrit.chromium.org/gerrit/16956
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
diff --git a/technology.cc b/technology.cc
index 5cef347..36c50af 100644
--- a/technology.cc
+++ b/technology.cc
@@ -30,6 +30,8 @@
     return kWifi;
   } else if (name == flimflam::kTypeCellular) {
     return kCellular;
+  } else if (name == flimflam::kTypeVPN) {
+    return kVPN;
   } else {
     return kUnknown;
   }
@@ -43,6 +45,8 @@
     return flimflam::kTypeWifi;
   } else if (id == kCellular) {
     return flimflam::kTypeCellular;
+  } else if (id == kVPN) {
+    return flimflam::kTypeVPN;
   } else {
     return kUnknownName;
   }