Nexus: Clean up supplicant events, protocol, and continue plumbing

    - Create SupplicantEvent classes for events
    - New SupplicantEventFactory for creating events
    - Extract Controller -> NetworkManager callbacks into IControllerHandler
    - Move ScanResult handling from Supplicant -> WifiController
    - Plumb more 'onConnected()' code
    - Instead of re-creating NetworkList every-time, merge in
      new entries
    - Extract SupplicantListener -> Supplicant callbacks into
      ISupplicantEventHandler
    - Move SupplicantListener callback handling to WifiController
    - Add unlocked version of lookupNetwork()
    - Save supplicant config after setting a WifiNetwork variable
    - Move property registration from WifiNetwork -> Supplicant
    - Change wifi enable broadcast messages
    - Add 3 new events: 'onAssociating', 'onAssociated', 'onConnectionTimeout'
    - Add support for handling KeyManagement

Signed-off-by: San Mehat <san@google.com>
diff --git a/nexus/ISupplicantEventHandler.h b/nexus/ISupplicantEventHandler.h
index 7e1bd5a..b7fd17b 100644
--- a/nexus/ISupplicantEventHandler.h
+++ b/nexus/ISupplicantEventHandler.h
@@ -17,21 +17,34 @@
 #ifndef _ISUPPLICANT_EVENT_HANDLER_H
 #define _ISUPPLICANT_EVENT_HANDLER_H
 
+class SupplicantAssociatingEvent;
+class SupplicantAssociatedEvent;
+class SupplicantConnectedEvent;
+class SupplicantScanResultsEvent;
+class SupplicantStateChangeEvent;
+class SupplicantConnectionTimeoutEvent;
+class SupplicantDisconnectedEvent;
+
 class ISupplicantEventHandler {
 public:
-    virtual int onConnectedEvent(SupplicantEvent *evt) = 0;
-    virtual int onDisconnectedEvent(SupplicantEvent *evt) = 0;
-    virtual int onTerminatingEvent(SupplicantEvent *evt) = 0;
-    virtual int onPasswordChangedEvent(SupplicantEvent *evt) = 0;
-    virtual int onEapNotificationEvent(SupplicantEvent *evt) = 0;
-    virtual int onEapStartedEvent(SupplicantEvent *evt) = 0;
-    virtual int onEapMethodEvent(SupplicantEvent *evt) = 0;
-    virtual int onEapSuccessEvent(SupplicantEvent *evt) = 0;
-    virtual int onEapFailureEvent(SupplicantEvent *evt) = 0;
-    virtual int onScanResultsEvent(SupplicantEvent *evt) = 0;
-    virtual int onStateChangeEvent(SupplicantEvent *evt) = 0;
-    virtual int onLinkSpeedEvent(SupplicantEvent *evt) = 0;
-    virtual int onDriverStateEvent(SupplicantEvent *evt) = 0;
+    virtual void onAssociatingEvent(SupplicantAssociatingEvent *evt) = 0;
+    virtual void onAssociatedEvent(SupplicantAssociatedEvent *evt) = 0;
+    virtual void onConnectedEvent(SupplicantConnectedEvent *evt) = 0;
+    virtual void onScanResultsEvent(SupplicantScanResultsEvent *evt) = 0;
+    virtual void onStateChangeEvent(SupplicantStateChangeEvent *evt) = 0;
+    virtual void onConnectionTimeoutEvent(SupplicantConnectionTimeoutEvent *evt) = 0;
+    virtual void onDisconnectedEvent(SupplicantDisconnectedEvent *evt) = 0;
+#if 0
+    virtual void onTerminatingEvent(SupplicantEvent *evt) = 0;
+    virtual void onPasswordChangedEvent(SupplicantEvent *evt) = 0;
+    virtual void onEapNotificationEvent(SupplicantEvent *evt) = 0;
+    virtual void onEapStartedEvent(SupplicantEvent *evt) = 0;
+    virtual void onEapMethodEvent(SupplicantEvent *evt) = 0;
+    virtual void onEapSuccessEvent(SupplicantEvent *evt) = 0;
+    virtual void onEapFailureEvent(SupplicantEvent *evt) = 0;
+    virtual void onLinkSpeedEvent(SupplicantEvent *evt) = 0;
+    virtual void onDriverStateEvent(SupplicantEvent *evt) = 0;
+#endif
 };
 
 #endif