netbase: Make SOCKS5 negotiation interruptible

(dependent on #4868)

Avoids that SOCKS5 negotiation will hold up the shutdown process.

- Sockets can stay in non-blocking mode, no need to switch it on/off anymore
- Adds a timeout (20 seconds) on SOCKS5 negotiation. This should be enough for even Tor to get a connection to a hidden service, and avoids blocking the opencon thread indefinitely on a hanging proxy.

Fixes #2954.

Should also solve #4502 by making sure that the socket for GetMyExternalIP2 stays in non-blocking mode (would be even better to use InterruptibleRecv in RecvLine for proper timeout/interruption handling, but this is going away anyway...).
MSDN sais this is a gracefully disconnect:
http://msdn.microsoft.com/de-de/library/windows/desktop/ms740121%28v=vs.85%29.aspx

Doesn't change a thing code wise, but I'd suggest changing the comment accordingly.