Implement a trivial SOCKS shim.

To launch the shim, add "--socks-shim shimPort,socksPort" to the client
side obfsproxy command line arguments (Eg: "--socksShim 9250,9150").

To use the code:
   import obfsproxy.transports.wfpadtools.socks_shim as socks_shim

   # Just an example, anything that implements the interface works.
   class ShimObserver(object):
       def onConnect(self, conn_id):
           # Will be called when a new SOCKS connection is established.
           pass

       def onDisconnect(self, conn_id):
           # Will be called when a existing SOCKS connection finishes.
           pass

   obs = ShimObserver()
   shim = socks_shim.get() # Will raise a RuntimeError if no shim.
   shim.registerObserver(obs)

   # Do whatever.

   shim.deregisterObserver(obs) # When no longer interested.

I only tested this with obfs3 since the wfpadtools code doesn't
actually run with tip of tree.