test: More aggressive fixture cleanup.

Completely remove the fixture element and add a new one when we call
clearFixtures().
test/plugin/defaultui: Clean up after tests

This test suite was leaving elements in the DOM. This commit ensures
these are cleared up after each test case.
Move namespace to standalone annotator-plugintools package

Currently, plugins in the core distribution (as well as hypothetical
3rd-party plugins) can

    require('annotator')

and get a reference to Annotator via the magic of src/namespace.js,
which inspects the current environment. If we're in a browser, and the
global `Annotator` is available, then we use that. In particular, this
requires that when we browserify the plugin bundles, we "trick" them
into thinking that the 'annotator' name refers to src/namespace.js.

This commit makes this process less magical, by introducing a standalone
package, "annotator-plugintools". This contains the shim previously
known as src/namespace.js.
Use Karma test runner

This replaces our existing test runner with the Karma test runner,
paving the way to automated cross-browser tests using
karma-sauce-launcher.
tools/serve: Simplify and use browserify-middleware

Rather than building our own custom server (in particular since this
server is no longer needed for testing) this changes tools/serve to use
browserify-middleware for serving:

- lib/annotator.js -- the annotator bundle
- src/plugin/*.js -- plugin bundles

This supports source map generation, and watchify-style source
reloading.