Test suite, remove extraneous code.
Unravel enormously long read_request into three distinct methods.
Merge pull request #99 from rouli/master

Adding helper functions to make HAR export easier
Beef up unit tests for HAR utility functions - flow.py coverage now 100%.
Stub implementation of a server connection pool.
Unit tests for ServerConnectionPool
Test WSGI app calling.

- Factor out test servers into a separate file
- Adjust docs to note new Flask dependency
Significantly refactor the master/slave message passing interface.
Refactor proxy core communications to be clearer.
Remove redundant clause in controller.Reply
Unit test dummy response functions.
Test request and response kill functionality.
Test client connection close conditions.
Test a difficult-to-trigger IOError, fix cert generation in test suite.
Handle server disconnects better.

Server connections can be closed for legitimate reasons, like timeouts. If
we've already pumped data over a server connection, we reconnect on error. If
not, we treat it as a legitimate error and pass it on to the client.

Fixes #85
Refactor to prepare for SNI fixes.
Significantly simplify server connection handling, and test.
Test cert file specification, spruce up server testing truss a bit.
adding __str__ to make export to har nicer
Merge remote-tracking branch 'upstream/master'