Fix the potential issue mentioned in #1151

See: https://github.com/kennethreitz/requests/pull/1151#issuecomment-12905796

This is solved by just reusing the PreparedRequest from the last request.
We shouldn't be sending the data on redirect.

As such, we should remove the body from the old request as well as the
Content-Length header.
Preserve the original request.

Let's make a copy to preserve it.
Resolve @piotr-dobrogost's concerns

Piotr had good objections to my not re-sending the body of the request on 307.