Support for annotating multiple frames

This pull request makes all necessary changes to allow annotating multiple frames, as well as some other nice things.

- The toolbar (formerly "controlbar") is now a plugin (but only works with h, not annotator upstream).
- The heatmap is now outside the iframe
  - No more negative margins on the collapsed sidebar
  - No more cross-frame RPC on scroll and resize
  - Reply counts are serialized by the bridge for the host frames
  - The heatmap is now a drag handle (much better than before) for resizing the sidebar
- The whole annotator frame on the host page now carries the background texture
  - It's possible to have a transparent background, for seamless integration.
- The sidebar annotator service can have multiple providers
  - The bridge plugin can operate in two modes -- client or gateway
    - Clients and gateways discover one another and the gateway offers to connect. Like DHCP.
  - The bridge plugin is augmented with an `onConnect` callback so further channels can be built which go outside the scope of the basic bridge functions.
  - Many notifications are now multiplexed to all connected frames