Embed jQuery in the built annotator

Rather than depending on an externally loaded jQuery, this commit causes
Annotator to embed its own copy of jQuery within its own closure, using
this for DOM manipulations.

This has a number of advantages, and a number of disadvantages. The
advantages first:

- We don't have to sniff the current page or execution context to
  determine whether jQuery has been loaded and issue a somewhat obscure
  warning when it's not.
- We can depend on whatever version of jQuery we like, regardless of the
  state of the outside world. Up until now, we were relying primarily on
  the jQuery project's good approach to backwards compatibility, but
  even with their conservative deprecation schedule, we have been bitten
  a number of times by depending on old jQuery features as the rest of
  the web upgraded.
- Our impact on pages we load into is minimised. Previously, the
  bookmarklet had to load jQuery, unbind it, and restore the page's copy
  with jQuery.noConflict() (if it existed). Now the bookmarklet (and and
  future browser extension) can simply load Annotator.
- Code is more explicit -- the '$' token isn't assumed to come from the
  page context.

There are of course a few disadvantages:

- In the ideal case, a page author would already have included jQuery
  (at the correct version) and keeping the dependency external would
  have saved them from having to load jQuery twice.
- The tests are now slightly slower, as a result of having to build
  jQuery into our compressed source files.

Overall, I think this is a net positive change, as it makes deploying a
working copy of Annotator easier. In the long run, I'd like us to reduce
our dependency on jQuery completely, removing it altogether if possible,
and this is a first step in decoupling that process from the concerns of
3rd-party developers and integrators.
Merge pull request #338 from okfn/embedded-jquery

Embed jQuery in the built annotator
Initial sketch of a Factory class for configuring Annotator
factory: Allow store and plugin ctors to receive arguments
Replace Registry with Factory and rejig Annotator boot
Minor whitespace fixes in Auth plugin
Fix initialisation of plugins in Factory mode
Simplify module loading and layout

This commit removes some of the magic that we were using to dynamically
rewrite plugin module names within this package (so that you could, for
example, require('annotator-plugin-permissions') within another plugin).

This strikes me as being complexity that we don't really need within the
main repository. As of this commit, we have the following:

- building pkg/annotator.js (or -full, or -bookmarklet) will result in a
  packaged file which can be required as 'annotator', or which will
  export the Annotator name to a global window object, if it exists.
- building pkg/annotator.<pluginname>.js will result in a packaged file
  which requires 'annotator' but does not include it inline.
Begin to decouple plugins from the Annotator namespace

Part of the complexity removed in the previous commit was the result of
needing the ability to build individual plugin files which added
themselves to the Annotator namespace.

This commit starts to unpick some of this complexity, by allowing
plugins to register themselves in a singleton "plugin pool" by name,
rather than somewhat hackily adding themselves to a global shared
object. The result is broadly similar, although this feels cleaner and
more explicit.

One implication is that plugins *must* now be loaded after Annotator
core, although I don't see that this will cause many problems.

As of this commit, inter-plugin interactions are still broken.