Fix AnnotationRegistry tests

Not calling the store functions until the next tick (because we wait for
the promise returned by triggerThen to be resolved) broke the tests,
which were assuming that the store methods would always be called
instantly.
Add missing clearFixtures() to adder tests
Make the widget property of Widgets a plain element
Clean up Viewer plugin and fix test suites

This commit cleans up the new Viewer plugin, and adds a much more
sensible set of tests for Viewer functionality.

Things changed:

- the readOnly option has been removed in favour of distinct
  showEditButton and showDeleteButton options
- the viewerHideTimeout functionality has been improved by
  distinguishing between hiding due to a passive user action (mousing
  off the viewer) and an active one (mousing over another highlight) and
  using different timeouts for each case
- The tests no longer reach deep into the internals of the plugin
  implementation...