First attempt at the replay mechanism

The sole interface change so far is for endpoints. With this patch, it
makes possible to have a tuple in the list of endpoints containing two
URLs. The first is for normal consumption, the second points to a port
where the replay thread listens in on a zmq.REP socket.

The current implementation is pretty generic: you send a query on that
REP socket in a format to be determined (but in JSON), the persistent
store parses it and returns a multi-part message, each part being a
message queried.