Fix #1955: Do not use original request in redirect

The original request was never being properly overriden in resolve_redirects.
As such being having a POST request respond with a 303 would generate a GET
request. If the GET request encountered another redirect to something like a
307, then it would use the original request and generate another POST request.

There are two parts to this fix:

- The fix itself
- The test infrastructure to ensure it does not regress because HTTPBin is
  insufficient
Merge pull request #1963 from sigmavirus24/fix-redirect-methods

Fix #1955: Do not use original request in redirect