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