[WIP] Native Tor support

This PR is intended to add Native Tor support to OpenBazaar.

Given that zmq does not support name resolution via SOCKS it has been necessary to create a small TCP redirector within PeerConnection that allows zmq sockets to be routed via SOCKS/Tor.

Currently this PR will route all zmq connections to nodes with '.onion' URIs via Tor successfully. Nodes cannot connect back yet because our URI is still set to a public address.

Summary of changes:
1) socksiPy-branch has been added to requirements.txt
2) A utility library file called tor_util.py has been created that currently contains a single class - TorRedirector
3) PeerConnection._initiate_connection in connection.py has been modified to call TorRedirector when a zmq peerconnection via Tor is required

Outstanding changes:
1) Within transport.py allow for my_uri to be set to the users Tor hidden service hostname when in 'tor mode' - e.g. the form tcp://abcdefg123456.onion:12345 (UPDATE: Done, now implemented in b6b89e5)
2) Allow for binding the server to localhost (currently openbazaar launcher prohibits this)  (UPDATE: Done, now implemented in b6b89e5)
3) Completion of --tor-mode parameter on the command line or another way of specifying a '.onion' hostname as your nodes IP. See #795  (UPDATE: Done, now implemented in b6b89e5)
4) Add ability to change the Tor SOCKS proxy from the default of 127.0.0.1:9050 to a user specified value
5) Ensure that other connections such as those to blockchain and Obelisk go via Tor ( may be #795)

so if we have 20 active peerconnections sending and receiving data you'd be allocating at least 20Mb's in socket memory buffers alone? doesn't that seem to you a bit too wasteful?

I'd try measuring how much of that 1Mb you're actually using and lowering those buffer sizes. it seems to me that this will be a huge cause of crashes and out of memory errors, specially if there are some bugs in which we might somehow lose control on the number of PeerConnections opened.

I'd recommend going against the per-thread per socket pair created, and look into the non-blocking version.