shill: Add support in shill to route selected traffic to ThirdPartyVpn

This CL adds capability to shill deamon to route selected network
traffic to ThirdPartyVpn by using multiple routing tables.

It further enables a list of IP blocks in CIDR notation to be excluded
from the VPN traffic rather than a single trusted_ip. The existing
trusted_ip mechanism to do this is removed to avoid redundant approaches
to solve the same problem.

Third party VPN driver is modified to make use of the new interfaces to
exclude and include a list of IP blocks in CIDR format from the VPN
traffic.

BUG=chromium:407541
TEST=Unittests and manual testing

Change-Id: Id185d3e9bf91d018b55899adaa562d3192d261cf
Reviewed-on: https://chromium-review.googlesource.com/247030
Commit-Queue: Prabhu Kaliamoorthi <kaliamoorthi@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Prabhu Kaliamoorthi <kaliamoorthi@chromium.org>
diff --git a/ppp_device_unittest.cc b/ppp_device_unittest.cc
index add236e..cbc219c 100644
--- a/ppp_device_unittest.cc
+++ b/ppp_device_unittest.cc
@@ -46,7 +46,8 @@
   ASSERT_EQ(2, props.dns_servers.size());
   EXPECT_EQ("1.1.1.1", props.dns_servers[0]);
   EXPECT_EQ("2.2.2.2", props.dns_servers[1]);
-  EXPECT_EQ("99.88.77.66", props.trusted_ip);
+  EXPECT_EQ("99.88.77.66/32", props.exclusion_list[0]);
+  EXPECT_EQ(1, props.exclusion_list.size());
 
   // No gateway specified.
   config.erase(kPPPGatewayAddress);