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 allow any node to connect via Tor (using --tor-mode or -t) although only other Tor-mode nodes will be visible. Functionality is the same as non-Tor mode. To receive connections you will need to configure a Hidden Service in Tor and point the hidden service port at your local OpenBazaar server port (usually 12345).

This PR is currently running a Native Tor seed node operating at tcp://fksu5carj3okqfan.onion:12345 suitable for test purposes if you wish. 

You may access the web interface of a demo client here: http://fksu5carj3okqfan.onion

Summary of changes:
1) Tor mode added to the launcher
2) socksiPy-branch has been added to requirements.txt
3) A utility library file called tor_util.py has been created that currently contains a redirector class - TorRedirector 
4) PeerConnection._initiate_connection in connection.py has been modified to call TorRedirector when a zmq peerconnection via Tor is required
5) An '.onion' hostname may be specified for your nodes local IP using '-i'
6) In tor-mode all zmq peerlistener sockets and peerconnection sockets bind to localhost only

Outstanding Changes
1) Ensure that other connections such as those to blockchain and Obelisk go via Tor 

A background medium-long term goal should be to fully implement SOCKS5 with name resolution into zmq itself at which point the redirector element would become redundant.
Can't this be done programmatically?