Close http.Response.Body on err in Transport

`Transport.RoundTrip` returns a `nil` `http.Response` on errors
without first closing the `Body`. This violates the contract
with `http.Response` and can leave open sockets until the
process exits.