shill: Service: Return profile entries that can configure

Add a Service DBus method that can provide the set of
(profile, entry) pairs that contain configuration for the
Service.  This can be used to figure out what profile
entries other than the one currently associated with the
service contain configuration entries relevant to this
service.

BUG=chromium:235674
TEST=Unit tests + manual: call GetLoadableProfileEntries
on a remembered service from python returns something like:
dbus.Dictionary({dbus.ObjectPath('/profile/default'): dbus.String(u'wifi_any_beef_managed_psk')}, signature=dbus.Signature('os'))

Change-Id: Id94f98b98e5cb5c98c32c765e707125f53dae2d9
Reviewed-on: https://gerrit.chromium.org/gerrit/49279
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/manager.h b/manager.h
index 6f946ea..43f124e 100644
--- a/manager.h
+++ b/manager.h
@@ -126,6 +126,8 @@
   std::vector<std::string> EnumerateCompleteServices(Error *error);
 
   // called via RPC (e.g., from ManagerDBusAdaptor)
+  std::map<std::string, std::string> GetLoadableProfileEntriesForService(
+      const ServiceConstRefPtr &service);
   ServiceRefPtr GetService(const KeyValueStore &args, Error *error);
   ServiceRefPtr ConfigureService(const KeyValueStore &args, Error *error);
   ServiceRefPtr ConfigureServiceForProfile(