The client-side route representation and tracking API, part of HttpConn.
is the path along which a request has to be sent to the server.
The route starts at a local network address and may pass
through one or more proxies before reaching the target.
Routes through proxies can be tunnelled, and a layered protocol (TLS/SSL)
might be put on top of the tunnel.
helps in tracking the steps for establishing a route, while an
determines the next step to take.
is responsible for determining a route to a given target host.
Implementations must know about proxies to use, and about exemptions
for hosts that should be contacted directly without a proxy.