Allow overriding just the timeout method

This separates out the building up of the http request from the code that
actually runs it with timeout protection, so that just the timeout protection
portion of the transmission can be overridden.