Request timeouts

At the moment requests don't timeout from the client side. For misbehaving servers this can be a problem as the test will hang.
Implementing client side timeouts, I believe, can be done with a custom `http.Transport`, `time.After` and `http.Transport#CancelRequest`.