Refactor socks package. Add support for socks4/4a.

Related to #2567 
This change is backward incompatible. 
Please move these to `UnknownSocksV4Request` and `UnknownSocksV5Response` respectively, and make them singleton.