make Connection::Connect() asynchronous
Currently Connect()
uses a select() call to wait for completion. We can also use the EventPool event for this, although probably the control flow becomes difficult. Probably need to rewrite the control flow to callback based control flow for specific operations.