shill: vpn: Ensure connected VPN services get sorted higher.

This allows shill to use the VPN connection as default once its
connected. Don't use the auto-connect property to decide the sort
order between already connected services, so that connected
non-autoconnectable VPN services are sorted higher (based on
technology order) than to other connected services.

Also, don't try to connect an already connected VPN service.

BUG=chromium-os:29628
TEST=unit tests, tested on device

Change-Id: Ia12b4ac939fc49abd9ca745373e9aa9ed181658c
Reviewed-on: https://gerrit.chromium.org/gerrit/20447
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/vpn_service.h b/vpn_service.h
index a7f0544..a1e5193 100644
--- a/vpn_service.h
+++ b/vpn_service.h
@@ -25,6 +25,7 @@
   virtual ~VPNService();
 
   // Inherited from Service.
+  virtual bool TechnologyIs(const Technology::Identifier type) const;
   virtual void Connect(Error *error);
   virtual void Disconnect(Error *error);
   virtual std::string GetStorageIdentifier() const;