Share the transport between locations using the same upstream

This is an important commit that fixes connection overload problem in case of hundreds of locations.
Currently each location uses it's own transport to the backend. This commit changes this behavior to reuse the same transport
from the upstream. This change also moves transport-level settings like timeouts to the upstream.

@bradgignac  @jeremyschlatter please review folks
it's also used by etcdbackend for example