Redirects with code 307 should respect the original requests method

Redirect code 307 was originally so that the requests method would be preserved during a redirect (See here: https://en.wikipedia.org/wiki/HTTP_302 )
So basically, if a POST comes in that gets redirected with Code 307, the redirected request should also be a POST.

Basically all this code does is, when handling a redirect, we check to see if the response is a code 307 and if so, make sure the method in the next request is the same as the first request.