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

Related to #2567 
This change is backward incompatible. 
It's a new type. No need to keep deprecated methods. Same applies for all methods in `v4` package.