shill: vpn: Associate VPN device with service and update IP configuration.

BUG=chromium-os:27384,chromium-os:27385
TEST=unit tests

Change-Id: I5b35bebeadd25f50f7044d2e4ec5bc121a56835e
Reviewed-on: https://gerrit.chromium.org/gerrit/17488
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/vpn_provider.cc b/vpn_provider.cc
index 643b212..2a9bd96 100644
--- a/vpn_provider.cc
+++ b/vpn_provider.cc
@@ -53,13 +53,11 @@
     return NULL;
   }
 
-  services_.push_back(
-      new VPNService(
-          control_interface_, dispatcher_, metrics_, manager_,
-          driver.release()));
-
-  return services_.back();
-
+  VPNServiceRefPtr service = new VPNService(
+      control_interface_, dispatcher_, metrics_, manager_, driver.release());
+  services_.push_back(service);
+  manager_->RegisterService(service);
+  return service;
 }
 
 bool VPNProvider::OnDeviceInfoAvailable(const string &link_name,