Added CSRF protection to all POST forms.

For the most part this requires little new boilerplate. The exception
is that we have to regenerate a new CSRF when form validation failed
and we need to re-render the errored form.

CSRF is disabled in tests by using an non-filtered Global object to
build the FakeApplication.