basic public profile form
Merge remote-tracking branch 'origin/master' into profile-user-details
Merge remote-tracking branch 'origin/user-email-preferences' into profile-user-details

Conflicts:
	identity/app/idapiclient/Auth.scala
	identity/app/services/IdRequestParser.scala
	identity/conf/routes
adding saving of the public profile page
adding signin protection to profile
a couple of bits of tidyup
Merge branch 'user-email-preferences' into profile-user-details

Conflicts:
	identity/app/idapiclient/Auth.scala
	identity/conf/routes
	identity/test/idapiclient/IdApiTest.scala
Refactor Action builders
Merge branch 'user-email-preferences' into profile-user-details
Switch public profile to identityMain
Fix CSRF implementation for tests

We now add application secret to the FakeApp and provide a
FakeCSRFRequest class for testing CSRF-controllers.
Rename email preferences fields to match API

This ensures error messages are displayed correctly for the user if
there is a problem in the ID API.
Merge branch 'user-email-preferences' into profile-user-details

Conflicts:
	identity/test/controllers/EmailControllerTest.scala
TMP
Merge remote-tracking branch 'origin/master' into profile-user-details
TMP
Merge remote-tracking branch 'origin/master' into profile-user-details
Merge remote-tracking branch 'origin/master' into profile-user-details
Improve error handling when ID API is not available
Logging when Identity API is not available