Add support for media embeds within live 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 scroll code to its own class.
Polyfill document.hidden and remove duplicated page state tracking.