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.
let's remove this hardcoded buffer size from here, give it a meaningful name, perhaps something along the lines of `SOCK_RECV_BUFFER_SIZE=102400`, and let's make it a TorRedirector "constant", I see you use the same number below, then plug it there on `RemoteSock.recv(SOCK_RECV_BUFFER_SIZE)`  #avoidHardCodedConstants