Handle empty URL path.
Section "3.2.1 Request" of the 3.1 spec indicates:

":path" - the url-path for this url with "/" prefixed. (See RFC3986).  For example, for "http://www.google.com/search?q=dogs" the path would be "/search?q=dogs".

RFC3986 3.3 explicitly permits an empty path.

I believe the correct interpretation of these two requirements is that
any path that does not begin with "/", including an empty path, should
have "/" prefixed for the :path field.

This causes client.Get("http://www.example.com") to behave as the caller
likely expects (returning the equivalent of "GET /").