Remove code-duplication around building AuthActions

The AuthActions only differ on what criteria they have for forcing the user to sign-in, so can remove a bit of repetition.
Ha... well, I agree that the expressions are pretty terse. Part of the idea of this commit was to remove boilerplate, so I wouldn't particularly want to reintroduce verbosity.

`_.exists(!_.isValid)`

could become:

`forceAuth = identity => identity.exists(!_.isValid)`

...if that's any clearer?