shill: WiFi: Add LinkMonitor

Use new wpa_supplicant DBus interface call "Reassociate" when
the LinkMonitor indicates failure.

CQ-DEPENDS=Ic9fa6c577808e3d753175d8cba8acbe3463eb1ee
BUG=chromium-os:32600
TEST=Unit tests; manual: With verbosity turned up I can see the
link monitor successfully receiving ARP replies and adding
response samples.  Both failures and samples appear in
chrome://histograms.

Change-Id: I059b8dc5ebb6cfec4dd715090a8bddb8daf86eae
Reviewed-on: https://gerrit.chromium.org/gerrit/29794
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/supplicant_interface_proxy_interface.h b/supplicant_interface_proxy_interface.h
index bf60d04..1034f44 100644
--- a/supplicant_interface_proxy_interface.h
+++ b/supplicant_interface_proxy_interface.h
@@ -23,6 +23,7 @@
   virtual void ClearCachedCredentials() = 0;
   virtual void Disconnect() = 0;
   virtual void FlushBSS(const uint32_t &age) = 0;
+  virtual void Reassociate() = 0;
   virtual void RemoveAllNetworks() = 0;
   virtual void RemoveNetwork(const ::DBus::Path &network) = 0;
   virtual void Scan(