SOCKS5 support

This was pretty simple and it works well.