(TK-48) Improve proxy request URI construction logic

Prior to this commit, the proxy URI request construction would
always add a slash to the URI.  In cases where this wasn't
necessary, it would cause failures.

This commit changes the implementation to use a constructor
from the Java URI class, and takes a bit more care to make sure
that we have slashes in the correct places in order to build
up the URI properly.
The one thing I think we might lose with this implementation -- which may not be a big deal -- is that previously you could embed user info into the URL by putting it at the front of the `:host` value.  Like if you used "myuser:mypass@localhost", you could achieve a URL with "http://myuser:mypass@localhost..." in it.  With this implementation, though, I think the URI constructor will reject the user info at the front of the host as being invalid, which would lead to a `URISyntaxException` being thrown.

If we really need to support user info in a proxied URL, though, it would seem better to reserve a new option (or separate options) for this (e.g., `:user` and/or `:pass` or `:userinfo`) that could be passed through to the URI constructor.