Add synchronous (blocking) publisher and subscriber
We currently implement an asynchronous publisher and subscriber for ZMQ. Some implementations call for a synchronous (blocking) version instead, for example https://code.orangeqs.com/products/prototypes/juice-extensions/-/issues/9.
This is easily doable as ZMQ provides synchronous versions of their sockets and context.