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.

Because the decoder is removed only when the decoding succeeds. Attempting to remove a non-existing handler from a pipeline will result in `NoSuchElementException`.