delegator: split Delegator into Evented and Delegator

Delegator handles a bunch of common setup for objects bound to a specific DOM
node, but it's useful to have around a class that implements just .publish() and
.subscribe() without all the extra baggage.

Split out the basic event handling functionality into Evented, and clean up the
Delegator tests a bit as well.
registry: Add a Registry object for annotations

In order to make custom Store plugins feasible, a lot of the work currently
performed by the Store plugin needs to move back into Annotator itself. The
Registry object is the part of Annotator that will look after communication with
a simplified Store plugin. It will have responsibility for sanity checking store
responses, and ensuring a common interface between other parts of Annotator and
the store.
Add new initialisation to dev.html
registry: preserve annotation object identity across requests

Previously, updating references to annotation objects was a laborious task that
needed to be done manually. With a registry to take care of this task,
annotation objects themselves can be preserved across remote requests, so that
anyone who has a reference to an annotation, has that reference for all time.

Also, deduplicate management of the annotations in the registry.
core: Pull annotation registry tasks out of Annotator

This commit starts the work of extricating the job of tracking annotation
storage state from Annotator core. The Store plugin is dramatically simplified,
leaving all the event publishing to the Registry, and large chunks of Annotator
core itself can be removed.

This breaks large chunks of the Store and Annotator specs -- I'll fix that in a
future commit =).