shill: Implement Manager::ConfigureService

As part of this change, add the "Profile" property to the list
of ignored properties for Service::Configure(), since we deal with
it separately in Manager::ConfigureService().  Also, fully deprecate
ConfigureWifiService; since Chrome doesn't use this function, there's
no purpose in supporting it.

BUG=chromium-os:22800
TEST=New unit tests.

Change-Id: Ie58e47d175784688b09e5d85f863ab97a8c8bb44
Reviewed-on: https://gerrit.chromium.org/gerrit/18897
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
diff --git a/manager.h b/manager.h
index d47d894..ac2f4d2 100644
--- a/manager.h
+++ b/manager.h
@@ -66,6 +66,7 @@
   virtual void SaveActiveProfile();
   bool MoveServiceToProfile(const ServiceRefPtr &to_move,
                             const ProfileRefPtr &destination);
+  ProfileRefPtr LookupProfileByRpcIdentifier(const std::string &profile_rpcid);
 
   // Called via RPC call on Service (|to_set|) to set the "Profile" property.
   void SetProfileForService(const ServiceRefPtr &to_set,
@@ -92,6 +93,8 @@
 
   // called via RPC (e.g., from ManagerDBusAdaptor)
   ServiceRefPtr GetService(const KeyValueStore &args, Error *error);
+  void ConfigureService(const KeyValueStore &args, Error *error);
+
   // Request portal detection checks on each registered device until a portal
   // detection attempt starts on one of them.
   void RecheckPortal(Error *error);