Handle handshake and on connect asynchronously

In the case where multiple clients simultaneously try connecting to the server or/and connectivity is poor (mobile,3g,4g) the clients a synchronous connection and handshake is not feasible and blocking. This patch introduces a maybe deferred so that this can be handled in a asynchronous non blocking fashion, yet having no effect on cases where it is done fast enough.

 More details on maybedeferred
 http://twistedmatrix.com/documents/current/api/twisted.internet.defer.maybeDeferred.html
 http://krondo.com/?p=2205