Update constructor to not defaulty throw on connect error.

Originally, the constructor would assign a connect callback which
threw, even if the user did not want this to be the case.  The
logic has been updated such that any unexpected errors inside the
constructor will throw, but the connect event will not.

Change-Id: I4a5f58ebd0f38a58653ab5f090d49d8db1602f8a