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).

I don't see that we really need the features provided by this extra
code, so I've gone ahead and removed it :)

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.
Just require jquery

Now that I understand how browserify's `external` method works, this is
substantially easier.

Rather than having to proxy everything through `Annotator.Util.$` (which
is a good idea, if rather cumbersome) we can simply ensure that all the
code relies on the same embedded jQuery by externalising the dependency
on build using `external`.
Remove unused file: console.coffee

This is no longer used by anything.
Standardise on require('foo') over require 'foo'

Sorry, this was getting on my nerves...