Only reject connection promise if it was triggered by a call to connect() (#359)
* Only reject connection promise if it was triggered by a call to connect()
* changeset
* immediately return promise from connect function, clean up failed connection attempts
* address comments
* only reject promise in disconnect if it's a reconnection