shill: monitor bss signal strength

This wires WiFiEndpoint up to a proxy, to monitor
changes in the corresponding wpa_supplicant BSS
object.

The WiFiEndpoint object notifies its WiFi object
about the change, and WiFi relays the information
to the appropriate WiFiService.

BUG=chromium-os:16786
TEST=new unit tests, manual

Manual testing: ran on device (with --v=1000), observed
"signal is now" messages in log file.

Collateral changes:
- fix WiFiService leak in WiFi (reset |current_service| on Stop)
- suppress some "uninteresting call" messages in
  WiFiMainTest.CurrentBSSChangedUpdateServiceEndpoint

Change-Id: Ic329ecd28f73d93238d517a73105f2cd35cbff2e
Reviewed-on: https://gerrit.chromium.org/gerrit/15868
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/mock_wifi.h b/mock_wifi.h
index b91af46..78b1b9f 100644
--- a/mock_wifi.h
+++ b/mock_wifi.h
@@ -14,6 +14,7 @@
 #include "shill/key_value_store.h"
 #include "shill/refptr_types.h"
 #include "shill/wifi.h"
+#include "shill/wifi_endpoint.h"
 #include "shill/wifi_service.h"
 
 namespace shill {
@@ -43,6 +44,7 @@
                void(WiFiService *service,
                     std::map<std::string, ::DBus::Variant> service_params));
   MOCK_CONST_METHOD0(IsIdle, bool());
+  MOCK_METHOD1(NotifyEndpointChanged, void(const WiFiEndpoint &endpoint));
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MockWiFi);