Fixed #15716 - Authorization Backends can raise PermissionDenied.

Raising PermissionDenied causes the authorization to fail without
checking other backends. Implementation similar to #2550.
Added tests and documentation to #15716.