shill: Manager: Clear all explicit disconnections

When the profile stack changes, remove all state related to
explicit disconnections.  Since this state is related to the
logged in user, it is reasonable to expect that this state
should be removed even for services which aren't switching
profiles as a result.

BUG=chromium:371771
TEST=Unit tests

Change-Id: I773c68e5e38ab4fda92a0532beb046188465dc13
Reviewed-on: https://chromium-review.googlesource.com/199147
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/service.h b/service.h
index 195f01e..6ff3e03 100644
--- a/service.h
+++ b/service.h
@@ -434,6 +434,10 @@
   // Called by the device to test for historical DHCP issues.
   virtual bool ShouldUseMinimalDHCPConfig();
 
+  // Called by the manager to clear remembered state of being explicitly
+  // disconnected.
+  virtual void ClearExplicitlyDisconnected();
+
   EapCredentials *mutable_eap() { return eap_.get(); }
 
   PropertyStore *mutable_store() { return &store_; }