restructure network stuff.  Clients each get a haskell network handle to the master server, client does req, master does rep.  When master wants client to do something, the masters request is broadcast over a zmq pub socket.  So connecting for a client means connecting to the server as well as connecting to the publisher