Use single thread to perform all zmq sends.

jeromq does not appear to be thread safe. Use a single thread to call
send on the ZMQ socket to avoid contention for those resources. Have the
RunListener pass events to the ZMQ sender thread with a BlockingQueue.

Do not block when offering events to that queue to avoid
starvation/deadlock in the Jenkins job runners. Events may potentially
be lost if ZMQ cannot keep up.