Add WebSocket republish resource (/wsrepublish)

This implements a simple protocol for receiving real-time updates to
data values over a WebSocket.  To use, start a websocket connection to
the resource (eg, ws://localhost:8079/wsrepublish).  By default, no
topics are subscribed.  To start receiving data, send a message
containing a "where" clause; for instance `has uuid` will subscribe to
everything.

The response format is essentially a single sMAP report per frame.
The data are json-encoded.