[WIP] Reincorporate bookmarklet build

This commit adds back the configuration needed to build the bookmarklet.
I've moved the bookmarklet from contrib/ to src/ -- if it isn't going to
have its own build process it probably shouldn't live in another
location (especially if that makes the build scripts more convoluted).

This is a work in progress. I have tried to preserve the original tests
for the functionality of the bootstrapper, but they are broken at the
moment. It might be easiest to test with a mock "window" object.
Remove redundant build writes

I can't recall exactly what I was doing here, but I think there was
an iteration of the browserify branch where I was attempting to write
all the plugins out as annotator-full was bundled. This is not needed
and rather confusing. The plugin builds take care of themselves. With
the inclusion of dependencies from node_modules, like the standalone
backbone components, this was causing those files to be written over
and the changed mtime was causing annotator and annotator-full to
appear out of date to make when the other was built.
Remove unnecessary bookmarklet build stuffs
Fix the bookmarklet tests

Some updates, migrations, changes:
- Use mocha, sinon, and chai
- Don't try to re-require, since modules are cached. Instead, just
require the bookmarklet once and take care of mocks and stubs to
make it re-usable.
- Kill support for having jQuery already loaded. That's nonsense and
`jQuery.sub()` has been removed in recent jQuery anyway. Just load it
always and use `noConflict()`.
- Change permissions -> annotateItPermissions where applicable
- The `<plugin>Options()` methods return the options object passed in,
not the one resulting from the plugin initialization. Therefore, don't
check for the class defaults to exist, such as `userId` on the
AnnotateItPermissions options.
Mock bookmarklet load more aggressively

Rather than trying to actually mock and test adding a script to the
DOM to load jQuery and annotator, just skip testing that bit and
mock `jQuery.getScript()` and the style modifications applied to the
head tag.
Remove redundant Make targets and includes

The dependency generation step in the main pkg/%.js rule has a sed
line that ensures the generated .d files are structured as rules
such that each only applies to the source files it strictly depends
on. As such, there's no need for a more complicated include at the
end than $(DEPDIR)/*.d to catch everything.

Also, the bootstrap script is caught by this because the bookmarklet
target depends on pkg/bootstrap.js.
Merge pull request #320 from okfn/bookmarklet-build

Reincorporate bookmarklet build
add waffle.io badge
Restore the ability for plugins to set Store headers

The Auth plugin in the v1.2.x series relies on the Store header parsing
the value of a jQuery `annotator:headers` field on the annotation
element in order to set the auth token header on requests to the store.

This functionality got lost in the refactoring of the Store plugin,
which I don't believe is a bad thing (for one, the implementation fell
far short of the "Tell, Don't Ask"[1] design philosophy).

We still need a way to get headers into the Store plugin, at least for
now, so this commit adds a `setHeader` method to the Store plugin, and
updates the Auth plugin to use that.

[1]: http://pragprog.com/articles/tell-dont-ask
Add simple utility function to check if two sets are equal
Hover: update content when moving over a new highlight

Changed hover behavior so that when the mouse moves over a new highlight,
the annotations displayed in the hover are updated accordingly.

Fixes #222.
Improve comments
Merge pull request #329 from hypothesis/222-update-hover

Annotator hover: update content/position when moving over a new highlight
Merge pull request #321 from waffleio/master

waffle.io Badge
README:Move waffle.io badge down
Merge pull request #324 from okfn/custom-plugin-headers

Restore the ability for plugins to set Store headers
Make hover less sticky by following the cursor on changes, and simplify

Now we don't check for the privously displayed set of annotations,
just hide and show again.
Merge pull request #333 from hypothesis/222-hover-simplified-final

Make hover less sticky by following the cursor on changes, and simplify
pin watchify version for node 0.8 support

Wasn't sure if we care whether our build system breaks on node 0.8
at this point, but that seems to be the message in travis, which I
traced back to watchify introducing a dependency on chokidar.
add document absoluteUrl tests