Implements SDKCtlSocket that implements communication protocol wih SdkController

In addition, this CL contains some minor tweaks to async-socket, and
async-socket-connector that improve tracebility.

Change-Id: Ib1309b19dcd02e96379155fea7015019d93160e7
diff --git a/android/async-io-common.h b/android/async-io-common.h
index 02714a7..02b2c96 100644
--- a/android/async-io-common.h
+++ b/android/async-io-common.h
@@ -44,6 +44,12 @@
     /* Asynchronous I/O has been cancelled (due to disconnect, for
      * instance).                                       (7) */
     ASIO_STATE_CANCELLED,
+    /* Asynchronous I/O is finished and is about to be discarder. This state is
+     * useful in case there is an association between an I/O and some client's
+     * component, that holds a reference associated with this I/O. When callback
+     * is invoked with this state, it means that it's safe to drop that extra
+     * reference associated with the I/O                (8) */
+    ASIO_STATE_FINISHED,
 } AsyncIOState;
 
 /* Enumerates actions to perform with an I/O on state transition.