Add a framework for granular reporter permissions.
Always allow reporters to strike/delete their own updates.
WebSocket: Add client-side support for new-style update messages.

Step one of a live migration to a new format for update messages.
WebSocket: start sending new-style update messages.

These include more metadata rather than just the pre-rendered update.
WebSocket: remove compatibility code for old-style update messages.
Add support for optional desktop notifications of new updates.

NOTE: the checkbox UI is obviously preliminary.
Factor unread item counter out into its own class.
Factor activity tracking pixel stuff out to its own class.
Factor socket status message out to its own class.
Move refresh message handler to core code.

This is something we'll want any/all websocket clients to be able to do
and is especially relevant with changes to Sutro that allow broadcasts
to wider namespaces.
factor out listing scrolling stuff