Fix horrible issue with karma-bro

We still (after close to 2 days digging into this) don't understand
what's going wrong here. Despite apparently having restored all package
versions to ones that previously worked, we've been unable to get this
working again.

While debugging the issue we discovered that adding a bundle call in the
prebundle hook gets the tests passing again. This is a horrible fix and
doesn't relieve us of the need to understand what's going on here and
how to fix it, but I don't want to burn any more time on this problem
for now.
Reworks the Tags plugin

Introduce Widget extensions:
- Widget extensions are functions that can be added to a widget as options.extensions (expects a list)
- These functions are run on the widget at rendering.
- This is a hook point to customize widgets, add necessarily new fields, etc.

The Tags plugin:
- Converted from coffee to js.
- It is no longer a plugin but an UI extension, so moved from plugins directory, to ui directory
- The filtering part is gone, since we have a separate plugin for that
- Offers two widget extensions: `configureViewer` and `configureEditor`
Introduce installExtensions()
Add tags to defaultui
Remove public parseTags and stringifyTags functions

No need to call them publicly.
Using this.options.parseTags|stringifyTags instead
Install extensions at the end of the constructor
Separate Viewer and Editor extension function in Tags plugin

- Has a common wrapper called createTagsPlugin
- All other functions are private
- Viewer and Editor extension functionality do not share the same scope
- But they receive the same options
Rename Widget.render to Widget.attach

- No explicit call to this function at the end of the derived constructors.
- Installs extensions only the first time
Fix jslint errors
Rename mayInstallExtensions to _maybeInstallExtensions
Exports tags as UI.tags
Merge pull request #464 from openannotation/rework-tags-plugin

Rework Tags plugin
Remove outdates tags_spec exclude
Upgrade karma-browserify to 1.0.0
Implement fix for Karma prebundle

As described in the GitHub issue. We now have to include "annotator"
explicitly as the "expose" parameter seems to break doing a relative
include for the same module.
Merge pull request #469 from openannotation/karma-prebundle

Fix karma-browserify prebundle
Put shortlinks into the metadata

No longer ignoring rel=shortlink links.
Many sides uses shortlinks, this'll help
discovering identical pages
Merge pull request #470 from openannotation/shortlink-support-to-document-plugin

Put shortlinks into the metadata
Introduce defaultRenderer() as a Viewer option

This hook is to change the rendering of the default field.
Add tests for defaultRenderer()