Made get_proxy_from_env private.

We never use this publcially, so it shouldn't be part of the
public interface. It's sorta akward to leave in, but
there wasn't any other code it fit in with, and I wasn't sure
that it was worth adding a whole second class just for
this one method.
Extracted Gem::UriFormatter.

There were a bunch of utility methods inside of RemoteFetcher that
didn't really belong there, so I pulled them out into a little class.
Extracted request into a method object.

This will open the door for much more change in the future.

More things could be pulled into this object, but I'm not
ready to fight with all the tests such things break yet.
Basically, #user_agent and the @proxy_uri variable are
only used within this method, but there are a bunch of
tests that hack at their internal state.
Extracted user_agent into Request class.
Moved proxy caclulation into Request.
Update history for #283