SIGN IN SIGN UP

Initiate connection handshake from server

This way the connection can be initiated by either side. It looks like
sometimes the initial message from the client is lost (it never makes it
into the onControlMessage callback) but I'm still not sure why or if
that is preventable.

Also added a timeout on the server end to clean things up in case the
client never responds.
A
Asher committed
0b9af6ef67253e4db7eb128a78d6676097a59cb8
Parent: c63dc3a