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
ui: Get TextSelector and Adder working in UI module

Moved TextSelector and Adder into a UI module, as they are not "plugins"
in any meaningful sense (they do not respond to Annotator lifecycle
events).
ui: Extract Highlighter component and plugin

This commit shows the way for a couple of new patterns.

First, the way that the DefaultUI plugin is responsible for composing
the new UI components should be beginning to be clear.

Second, the division of the Highlighter into a domain-specific
Highlighter component in the UI module, as well as a thin wrapper plugin
that can, if needed, be used on its own.