Add proxy support for client socket connections

Related issue: #1133

- Remove unused dependencies from POMs
- Add ProxyHandler and its implementations

TODOs:

* Test a random chain of multiple proxy servers
* Rewrite the socksx codecs to have only two decoders per protocol version - one for server and the other for client
* Use unique handler names for the proxy protocol codecs, so that multiple ProxyHandlers can work together - need to expose DefaultChannelPipeline.generateName() somehow.

We could, but I think it will make the constructor signature unnecessarily crowded. For an instance, we do the same for `SslHandler` for handshake timeout.