Simplify applyUpdates
Put notificiations behind a feature flag

And only show the notifications panel for account settings when it is turned on

Fix #1762
Update PDF plugin

... to 46274663 (typed-packaging branch)
Shorten the name of the Hypothesis Chrome extension

There is a hard limit of 45 characters. Also added the short_name
field without the tag line.
Merge pull request #1817 from hypothesis/update-annotator

Update PDF plugin
Update Firefox extension build command in the realm
Clean up the extension build script
Pulse annotation cards when updated

In order to help the user notice updates arriving over the websocket,
this commit causes cards to pulse when they're updated.

If an annotation is part of a collapsed thread, then the pulse will
occur on the first visible parent thread.

Cards owned by the logged-in user will not pulse. This is primarily an
easy way of ensuring that cards don't pulse in the same view as they are
being edited (although it doesn't ensure this in all cases), but it also
makes sense more generally: users don't need to be notified of changes
they have made.
Merge pull request #1821 from hypothesis/tidy-extension-script

Clean up the extension build script
Add psycogreen module to requirements.txt

This is already supported in gunicorn.conf.py and at some point when
I slashed our requirements.txt down I lost this, which means our DB
calls have been blocking the whole worker for a while.
Optimize pngs with optipng
Increase asset cache age in production to 1 year

These have a cache-busting query string based on the checksum,
generated by webassets, so it should be safe to cache these for a very
long time.
Merge pull request #1812 from hypothesis/realtime-notifications

Pulse annotation cards when updated
Add renderer_global to expose feature to templates
Split settings tabs; make auth and settings blocks

Make the auth and settings sections of the app template into blocks so
that they can easily be overridden in inheriting templates. That makes
it possible to split the account and notifications settings into their
own templates without worrying about whether they are applicable for
downstream partners, who can now override the whole block rather than
the account template, for instance.
Merge pull request #1811 from hypothesis/notification-feature-flag

Put notifications behind a feature flag
jinja_extensions: better include_raw content caching

The include_raw tag provided by the previous iteration of this
extension adds a constant value to the Jinja parse tree, but is unable
to tell Jinja that a particular file has been read in order to generate
it. This means that the pyramid autoreloader doesn't know to reread the
files in question when they change, making development that touches the
Angular templates rather tedious -- a manual server reload is required
every time a template is changed.

This commit changes the include_raw tag to an include_raw function,
which rereads the Angular templates on each rendering of app.html in
development mode, but memoizes the contents when in production.