Big requests and tests

tl:dr;
- large streaming writes no longer fail
- testing infrastructure: python unittests that make requests to a node streaming and proxy server

cc @theengineear for your python guidance, @etpinard for the heads-up, @bronsolo @alexander-daniel in case you ever need similar test infrastructure for MATLAB/node.js library streaming tests, @bpostlethwaite because the test-server and responses attempt to mimic your streaming infrastructure

Streaming writes were failing with `EAGAIN` when the socket [filled up with too much data](https://github.com/chriddyp/chunked_requests/pull/2/files#diff-27e9892e71752a3ec19b410373cbfe50R65).

This is expected. From the official [Python Socket docs](https://docs.python.org/2.7/library/socket.html#socket.socket.setblocking):
>  In non-blocking mode, if a recv() call doesn’t find any data, or if a send() call can’t immediately dispose of the data, a error exception is raised

These writes were fixed by setting the `socket` to `blocking` mode before the `socket.send`, and then un-setting it: https://github.com/chriddyp/chunked_requests/pull/2/files#diff-27e9892e71752a3ec19b410373cbfe50R64

To replicate this error in tests, there is a latency proxy test server that holds onto the request for 10 seconds before pushing it through the server (https://github.com/chriddyp/chunked_requests/pull/2/files#diff-ad3c25167d0354b9b277e3ab6f375274R45). we send tons of data to this proxy server, causing the python socket to fill up and throw an exception.