shill: WiFi: Provide wpa_supplicant a PIN if asked for

There are conditions under which wpa_supplicant will clear the
"pin" property of its configuration, even if this was previously
supplied by shill.  Under these circumstances it wil request it
again as the EAP negotiation starts.  This change provides the
means for the WiFi object to detect when this parameter is being
requested and to supply this value to wpa_supplicant if the
WiFiService has this information on hand.

BUG=chromium:310296
TEST=Unit tests + new autotest:
  https://chromium-review.googlesource.com/174170
This autotest still fails the following but shows in the supplicant logs:
   CTRL_IFACE: response handle field=PIN
   EAPOL: received control response (user input) notification - retrying pending EAP Request
indicating that the PIN has been successfully provided to wpa_supplicant

Change-Id: I91bc3ddd01a335f93d20cca4d47ca497bd631ebe
Reviewed-on: https://chromium-review.googlesource.com/174180
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/mock_eap_credentials.h b/mock_eap_credentials.h
index 43991da..5986714 100644
--- a/mock_eap_credentials.h
+++ b/mock_eap_credentials.h
@@ -35,6 +35,7 @@
   MOCK_CONST_METHOD0(identity, const std::string &());
   MOCK_CONST_METHOD0(key_management, const std::string &());
   MOCK_METHOD1(set_password, void(const std::string &password));
+  MOCK_CONST_METHOD0(pin, const std::string &());
 
  private:
   std::string kDefaultKeyManagement;