Refactor Transports a bit to allow sharing of the Transport
implementations amongst Providers.