Enhanced authentication process to return AuthResponse.
Previously a simple boolean was returned to indicate the success of the authentication.
The AuthResponse contains AccessToken  and RefreshToken which should be used on subsequent connections.
Start adding specs for it too.