In my first tests of the relay, the ZMQ messages were all arriving in
send order and without duplication, but in BinderHub tests I'm getting
out-of-order messages and message duplication. Fortunately pywwt already
includes a sequence number when sending out its messages, so add that to
the specification and use the sequence numbers when processing replies.
This seems to fix the issues I'm seeing.
This will allow frontends to easily detect whether the KDR server
extension is installed. They will then be able to relay that information
to backends through comms, if so desired.