Make both the http1 and http2 Transports more aggressive on idempotent retries, if the new Go 1.8 Request.GetBody is defined. That means we can back up the Body and replay the whole request.
Go 1.8 uses that for redirects, but not for connection failures.
Do that in Go 1.9.