Add optional support for SOCKS proxies via PySocks.

This PR adds minimally invasive support for SOCKS proxies via the PySocks package.
The dependency on PySocks is introduced as an extras_require in setup.py.
At import time the global socket object is monkey-patched with the sockssocket iff PySocks is importable and the SOCKS_SERVER environment variable is set correctly.