Rewind stream bodies on redirects

If the stream cannot be rewound an exception is raised.  This leverages the `response` hook from requests: http://docs.python-requests.org/en/latest/user/advanced/#event-hooks

Fixes #82.

The integration test that shows this issue is [here](https://github.com/jamesls/botocore/compare/rewind-on-redirect?expand=1#diff-02f637532aa2fba41fa91ac0763345b4R295)

This will allow us to switch to file like objects in the CLI (https://github.com/jamesls/aws-cli/tree/memory-utilization)