Tcp proxy

Hi @cortesi,

I think the tcp_proxy branch is at a good state now and ready for extended testing and/or merging. Here's the current status:
- [x] all test cases pass. :bowtie: 
- [x] both mitmproxy and mitmdump work with no observed bugs so far.
- [ ] no full test coverage
- [ ] It is currently impossible to change the destination server when intercepting flows. Having split proxying and protocol logic, this becomes a little more complex. The basic skeleton for this is ready, but not implemented yet.
- [ ] when merging, `.travis.yml` needs to be corrected to point to pathod/netlib master again.
- [ ] the requestcount attribute has been removed from clientconnection. Introducing it again should not be an issue though. (a) is it useful to have this again? (b) do we want to have it for the server connection, the client connection, or both?

Things that sould be done, but probably not within this PR:
- [ ] We have import statement kong-fu on some places (protocol, proxy, flow). This largely comes from the fact that we already have circular imports and currently cheat by using absolute imports in `libmproxy.flow` and `libmproxy.proxy` (both import each other). This "cheat" doesn't work with submodules. We need to split up `libmproxy.proxy` and move a few other things. I did that earlier today but concluded that it would make this PR even more confusing and let it rest untils this is merged.