Chunked body

This pull requests implements preliminary support for chunked message bodies (rfc 2616. It supports reading and writing of chunked request bodies, and the reading and writing of chunked response bodies. It does _not_ support chunk-extension fields or trailers.

This pull request also adds an optional ``context`` parameter to handlers that allows the handler to communicate with the endpoint outside of the actual response, e.g. for telling it to send a chunked response body.

This pull request also includes some helpful testing tools, such as LocalSocketPair and StaticTcpServer.