Added support for `requests`.

Requests wasn't working since it depends on urllib3, which does its own patching of httplib. We fix this by patching this object and adding a feature other compatability changes.
Added stream interface for urllib3 read support.

And some other patches for compatability.
Basic unit test.
Updated responses.yaml fixture for testing.
Fixing redirect support for `requests`.
Added and refactored `requests` tests.
Fixed issues with not having requests installed.

Made requests truely optional. However, tests requiring
requests will fail if requests is missing.
Made requests required for tests.

Also minor formatting and commenting tweaks in response to Charles's comments.
Fixing extra line.
Removing TODO about adding cross compatibility.

Cross library compatibility is hard to do and probably not correct because different libraries emit different headers by default.
Adding README and updating changelog.
Merge pull request #20 from uber/add-requests-support

Adds support for `requests`.