Fix block-page.js.

Broken by the change immediately after its introduction,
abc29b7e60bef68f9d2b2c2a1cd776c1c944b9ca "Fix handling of reconnecting
to server." Unfortunately I don't see a good way this could have been
tested.
Use custom element instead of <section> for more flexibility.

This implementation allows the module to react to insertion and removal
of elements rather than scanning for all <section>s existing when it was
loaded.
Docs for ModeDef.
Introduce "shared objects":

A "shared object", a notion desperately in need of a better name, is a
singleton (within the scope of the top block) which can be retrieved by
plugin objects (i.e. demodulators) and used to persist or combine things
beyond the scope of a single demodulator.

For example, collected APRS information is now kept in such an object,
so that it persists even if an APRS receiver is deleted.

Shared objects are displayed in the UI as separate subwindows; the
current expectation is that they will be used for plugins that have
major UIs or data displays independent of receivers. We'll probably
have to provide different things later, but this seems like a useful
feature at the moment.