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).
Or, I see, it can only fail on a malformed URL? In that case it's fine.