Currently, ZMQ listeners cannot detect if they have missed a message. This PR adds a sequence number to each message (each message type has its own counter).
The sequence number is the last part of the multipart zmq message to not break the API, though, we could consider breaking the API in favor of moving the sequence number to the very beginning.
Todo:
- update release notes