shill: wifi: Scan for hidden SSIDs

Find all services with the "hidden" property set.  If any exist,
specify the "SSIDs" argument to wpa_supplicant and supply up to
MAX_SSIDS-1 of them as arguments to the scan, as well as the
broadcast SSID.

Side effect -- removed the "services_" vector from the Service
superclass.  I don't think a non-subclassed Service vector makes
any sense to keep around.

BUG=chromium-os:22074
TEST=New Unit Test

Change-Id: I52af8b81d301a9561812af04a16df6e6fcc644bc
Reviewed-on: https://gerrit.chromium.org/gerrit/11347
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/wpa_supplicant.h b/wpa_supplicant.h
index 1152ded..78aeaa6 100644
--- a/wpa_supplicant.h
+++ b/wpa_supplicant.h
@@ -32,6 +32,7 @@
 extern const char kPropertyPreSharedKey[];
 extern const char kPropertyPrivacy[];
 extern const char kPropertyRSN[];
+extern const char kPropertyScanSSIDs[];
 extern const char kPropertyScanType[];
 extern const char kPropertySecurityProtocol[];
 extern const char kPropertySignal[];
@@ -44,6 +45,7 @@
 extern const uint32_t kNetworkModeInfrastructureInt;
 extern const uint32_t kNetworkModeAdHocInt;
 extern const uint32_t kNetworkModeAccessPointInt;
+extern const uint32_t kScanMaxSSIDsPerScan;
 };
 
 }  // namespace shill