shill: vpn: Create a VPN device for L2TP/IPSec and apply IP configuration.

Also, implement a new DeviceInfo API for retrieving the interface
index based on the interface name.

BUG=chromium-os:18496,chromium-os:29912
TEST=unit tests

Change-Id: I7d9e667d2c63baa96ed2b01dfa580de7d361b5f3
Reviewed-on: https://gerrit.chromium.org/gerrit/20931
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/mock_device_info.h b/mock_device_info.h
index ff7d61e..6175f13 100644
--- a/mock_device_info.h
+++ b/mock_device_info.h
@@ -29,6 +29,7 @@
   virtual ~MockDeviceInfo();
 
   MOCK_CONST_METHOD1(GetDevice, DeviceRefPtr(int interface_index));
+  MOCK_CONST_METHOD1(GetIndex, int(const std::string &interface_name));
   MOCK_CONST_METHOD2(GetMACAddress, bool(int interface_index,
                                          ByteString* address));
   MOCK_CONST_METHOD2(GetFlags, bool(int interface_index,