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
Ah, I see this was copied from LocationTimeouts. May or may not be worth changing if other code already depends on it.