shill: WiFi: Reload hidden services after restart

Hidden services in WiFi are loaded in two situations:

  (1) When the WiFi Device is registered, WiFi::Load() is called
      each profile.

  (2) When a profile is pushed, WiFi::Load() is called with the
      new profile.

When WiFi::Stop() is called, all services are removed, so some
mechanism needs to be used to reload these hidden services when
WiFi::Start() is called.

BUG=chromium-os:35703
TEST=Unit tests + manual: Disable / Re-Enable WiFi and make sure
remembered hidden networks are still visible.

Change-Id: Ie6b9351db940860cb20c39e0575c3d5dd8c921d0
Reviewed-on: https://gerrit.chromium.org/gerrit/36736
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/mock_manager.h b/mock_manager.h
index 21eddba..b8836b0 100644
--- a/mock_manager.h
+++ b/mock_manager.h
@@ -44,6 +44,7 @@
                      const std::string &entry_name));
   MOCK_CONST_METHOD0(GetDefaultService, ServiceRefPtr());
   MOCK_METHOD0(UpdateEnabledTechnologies, void());
+  MOCK_METHOD1(LoadDeviceFromProfiles, void(const DeviceRefPtr &device));
   MOCK_METHOD1(IsPortalDetectionEnabled, bool(Technology::Identifier tech));
   MOCK_CONST_METHOD1(IsServiceEphemeral,
                      bool(const ServiceConstRefPtr &service));