Refactor no-perm handling into `handle_no_permission`

 - Add `handle_no_permission`.
 - Move `no_permissions_fail` and `redirect_unauthenticated_users` to
   base AccessMixin.