delegator: track of bound events and allow removal

If we ever want to support complete unloading of an Annotator instance, we need
to keep track of the closures we create when binding events.

This commit adds a .removeEvents() method to Delegator instances, which removes
events previously bound by .addEvents() at construction.

In addition, this commit:

- Renames the private API method .addEvent() to ._addEvent() to make its
  intended use clear.
- Removes support for passing a DOM element as the first argument to
  ._addEvent(). This functionality wasn't actually used by any of Annotator, and
  added complexity to the implementation.
Add a #destroy() method to Annotator

A number of issues have been filed against Annotator (#168, #202, #213)
requesting the ability to recreate an Annotator instance or reload some
component of Annotator. This has been made difficult by the lack of a clean way
of removing existing Annotator instances from the page.

Add a #destroy() method to Annotator which uses the new #removeEvents() method
of Delegator to do the heavy lifting. Plugins have a default #destroy() method
which they can override to do plugin-specific cleanup: see the Filter plugin for
an example.
core: simple instance tracking

It can occasionally be very useful to get a list of instances of Annotator in
the current page. This is currently almost impossible unless you track instances
yourself, which isn't made particularly easy by the default method of
instantiating Annotator, i.e.

    $('p').annotator()

Now we have an explicit #destroy() method, I don't see any particularly harmful
side effects of allowing the Annotator object to keep a reference to each
constructed instance.
delegator: minor documentation fix
delegator: typo
Merge pull request #226 from okfn/feature/remove-annotator

Add a #destroy() method to Annotator