Split timeout into connection and response timeouts, for optimal control.

@smarek Take a look when you got a moment. Thanks.