Client should validate the incoming host value

Convert host:port and URLs passed to client.New() into the proper values, and return an error if the value is invalid.  Change CLI to return an error if -master is invalid.  Remove Client.rawRequest which was not referenced, and fix the involved tests.

Preserves the behavior of the client to not auth when a non-https URL is passed (although in the future this should be corrected).
I'll bring it back - I undid my refactor by re-refactoring.