pass the "no proxy" information to the no_proxy? method

This decouples `no_proxy?` from the request instance
remove noproxy calculation from the Request instance
decouple https checking from the Request instance
connections_hash doesn't actually do anything, so rm it

Request objects are never reused:

  https://github.com/rubygems/rubygems/blob/master/lib/rubygems/remote_fetcher.rb#L337

so caching the connection in a hash is meaningless.  Let's remove the
code for now.
the connection is always new, so it's never started.
decouple net/http args from the Request instance
make the monkeypatch test more similar to actual implementation
get the cert files from a method, then implement the method in the tests
decouple SSL configuration from the Request instance
remove ssl configuration from the Request instance
introduce a connection pool for getting connections

The request instance should get the connection from a connection pool.
Eventually we'll pull the pool outside of the Request instance.
add pool objects for each server and ssl vs non-ssl
push connection starting to a method so the SSL strategy can configure the connection
connections can be checked out and in in a thread-safe manner

The connection pool only wraps one connection because Ruby Queues are
FIFO and not LIFO.  We can expand the pool size later.
stop using the network on test
decouple proxy env parsing from the Request instance
decouple get_proxy_from_env from proxy_uri
delegate proxy_uri to the ConnectionPools
delegate cert_files to the ConnectionPools
push proxy -> URI instance conversion to the ConnectionPools class