Proof of concept for auth ActionBuilder

This allows Identity to easily create actions that require a logged-in
user.

If the user is logged in, the details extracted from the cookie are
included on a User object added to the request parameter as
request.user.

If the user is not logged in, we issue a redirect to the dentity
signin page.
TODO: The signin page's return URL won't be right at the moment.
AuthAction with working signin redirect
Simplify Auth implementations and add ScGuU provider
Include Auth on custom request for AuthAction
Add 'join' api helper to perform calls simultaneously
Working first draft of email prefs page
AuthRequest is now WrappedRequest instance

This negates the need for the implicit conversion.
Another step towards email prefs
User preference form

Depends on the user-prefs and forward-identity-cookie Identity
branches for a compatibleID API.

This introduces a working-ish email prefs form. Still needs CSRF
protection and tests.
Convert client auth to new ID header
Tests for EmailController and update clientAuth

Client Auth now uses the ID header instead of overloading the access
token parameter.
Refactor checkbox and radio into proper field helpers

Also refactor the helpers a bit generally, so that they are laid out
more clearly and less ID-specific.

Radio buttons and checkboxes on the email prefs page are now created
in the same way as other input fields. This is achieved via a separate
FieldConstructor that must be explicitly passed.

Some default error messages have been added to the messages file to
support errors from these types of fields.
Remove trailing '.' on messages for consistency
Make radio IDs unique
CSRF protection for Identity forms
Reuse checkbox fragment in checkbox field
Update form constructor classes
Update user email prefs markup
Update user email prefs copy
Merge remote-tracking branch 'origin/master' into user-email-preferences