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).
Nit: I liked it better when these were one-liners, but I guess it doesn't matter that much.