Add a separate connectTimeout option

Let clients limit the time spent waiting for a connection to be established
separately from the timeout for the entire request. This is important to avoid
waiting overly long when using load balancers like LVS which might in some
situations send traffic to a black hole.