Return error when prompting for host.

This'll make sure we propagate error to the caller where we can reformat
the error message within the context.

This fixes `features/authentication.feature:85`
Rename ClientError to AuthError
Extract out logic of building api host
Merge pull request #529 from github/error_msg_format

gh: Propagate authenticate error to the caller