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.