Adding max_retries as an argument

Related ticket: #1208

This pull requests adds support for `max_retries` as an argument to `requests.request`. I think that since we already support `timeout` as a top-level argument then it makes sense to support `max_retries` too. 

I've added a unit test, but this is a very difficult thing to test for. I can't see any easy to simulate an unrealiable connection.

Please let me know what you think.