SetHttpClient overrides default (GAE requirement)

Necessary for Google App Engine because net/http.DefaultClient is not
available.

Default behavior unchanged.

Unit tests were failing so I didn't check with those.
Auth is part of request, not URL

fixes problems on GAE, whose http.Client implementation doesn't
automatically extract the user portion of a URL as basic auth.