Async connect

* Failure to connect on start does not prevent the application from
  starting
* Failure to connect after starting does not cause the application to
  crash