Make flash messages disappear when dismissed
PEP8
Formalize the use of the User.status flags

The reservation forms currently in use set two bits in the status
column of the user table. The low bit indicates confirmation of email
address, the next lowest newsletter opt-out.

This change formalizes this by adding properties to the User class.
It also changes the subscriptions boolean column to be the third lowest
bit of this field.

This allows us to run against an older installation without mapper
conflicts. In the future, we may need to do migrations for upgrades, but
for now this avoids one.
LoginEvent is only fired when there is a user

Remove a redundant conditional.
Use .extend() instead of .update() on headers

Headers is a MultiDict. With .update() the value is replaced, with
.extend() it is extended.
Improve assets_request subscriber predicate

Support all static views, even those not sharing a prefix with the
configured webassets url.
Backwards compatibility with stable /app route

Convert {username, provider} objects to strings.
Fix production extension builds

Add a subscriber to populate the renderer globals during the Chrome
extension build to complete the transition to an extension build script
that uses ``pyramid.view.render_view``.

Fix content type of the app request.
Small tidy in extension build