core: Extract Annotator core functionality

Here's another attempt (or start of one) to improve on the plugin
architecture of Annotator. I've stripped away a lot of complexity,
including:

- Factory (gone completely)
- Annotator.Plugin.register (Annotator.Plugin is just a plain old object
  again)

But the most important change is the addition of src/core.coffee, which
contains AnnotatorCore. AnnotatorCore is:

- where plugins and storage implementations are registered
- responsible for propagating hook actions ('onAnnotationCreated') to
  plugin instances
- able to tear down an Annotator instance

That's all at the moment, but that leaves the Annotator class itself to
be responsible *only* for setting up a "default Annotator application"
-- the thing that most users have been using throughout the 1.2.x
series.

I've commented out a bunch of plugin tests -- the ones that still rely
on nasty direct inter-plugin dependencies.
storageadapter: Rename AnnotationRegistry -> StorageAdapter

This is not a registry of any description. Rather, it is an interface
adapter which wraps a concrete storage plugin implementation.

This commit also bulks up the tests for this component quite
substantially.
nullstore: Simplify NullStore

Storage plugins can now return values from their methods, so NullStore
doesn't need to mess with Deferreds.
nullstore: NullStore is not a plugin