fixes #10: Previous implementation used multiple bind on the same ZMQ PUSH socket and used single backend subscriber. This was incorrect.
Changed that to create 1 PULL frontend to receive messages from multiple pellets. Which then uses PUB to send it to the backend. Multiple backend threads run and they subscribe for these messages and open a tcp socket each to send messages to downstream.