shill: vpn: Pin route on default connection

If "trusted_ip" and "gateway" are both specified in the OpenVPN
config, pin a host route to the VPN server.  As a bonus change,
add a MockService::connection() and supply a default value so
Service does not need to befriend so many tests.

BUG=chromium-os:27483
TEST=New unit tests

Change-Id: I010fca6336b227c4086efb0481dcb8052245213e
Reviewed-on: https://gerrit.chromium.org/gerrit/18155
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/ipconfig.h b/ipconfig.h
index 87f4a15..e0f8340 100644
--- a/ipconfig.h
+++ b/ipconfig.h
@@ -50,6 +50,10 @@
     std::string gateway;
     std::string method;
     std::string peer_address;
+    // Used by OpenVPN to signify a destination that should bypass any default
+    // route installed.  This is usually the external IP address of the VPN
+    // server.
+    std::string trusted_ip;
     int32 mtu;
     std::vector<Route> routes;
   };