Fix EZP-21847 fatal error in legacy script if ezxFormToken isn't found
Fix for EZP-22326: REST API: GET Content request fails when the content has not been published.
EZP-22457: fixed incorrect usage of Repository::canUser()
EZP-22522: fixed using wrong class
EZP-22522: implemented createFromConnection()
EZP-22522: adapt LegacyDbHandlerFactory
EZP-22522: adapted test
Merge pull request #819 from ezsystems/fix-EZP-22457-xmltext-embed-canuser

Fix EZP-22457: XMLText uses canUser API wrong on location embeds
Merge pull request #816 from ezsystems/fix-EZP-22522-postgres-sqlite-dbhandler

Fix EZP-22522: Unable to install eZ Publish 5.3 on Postgres
BDD: refactor Setup wizard
Fix EZP-22039: Config resolver hasParameter() method does not check siteaccess groups scopes
Fix EZP-22220: Session creation in REST API doesn't use Symfony SecurityContext properly

Issue: https://jira.ez.no/browse/EZP-22220

This made it impossible to use multiple user providers (see #683).
It also had the side-effect that authorization didn't work correctly when checking with SecurityContext.

This patch refactors the REST User/creationSession controller by extracting all the authentication logic to a proper *Authenticator* service.
A security factory is introduced along with a new setting in `ezpublish/config/security.yml` to allow the authentictor to work.
The authenticator service needs indeed to be registered as a *Firewall listener* to be aware of the SecurityContext `providerKey`, represented by
the identifier of the configured firewall currently in use.

## Configuration change in `security.yml`
A configuration change in `security.yml` is needed:

**After**
```diff
--- a/ezpublish/config/security.yml
+++ b/ezpublish/config/security.yml
@@ -26,9 +26,8 @@ security:

         ezpublish_rest:
             pattern: ^/api/ezp/v2
-            stateless: true
-            ezpublish_http_basic:
-                realm: eZ Publish REST API
+            anonymous: ~
+            ezpublish_rest_session: ~

         ezpublish_front:
             pattern: ^/
```
EZP-22220: Added unit tests
EZP-22220: Refactored to extract AuthenticatorInterface
Fix EZP-22738: Fatal error in Legacy\View\Provider\Block

Sometimes in `Legacy\View\Provider\Block`, legacy kernel fails to return an `eZObjectForwarder` for `block_view_gui`. This happens most likely when there is a cache issue (e.g. context change when developing).
It results to a fatal error:

```
PHP Notice:  Undefined index: block_view_gui in /Users/lolautruche/workspace/ezsystems/ezpublish-legacy/lib/eztemplate/classes/eztemplate.php on line 660

PHP Fatal error:  Call to a member function process() on a non-object in /Users/lolautruche/workspace/ezsystems/ezpublish-kernel/eZ/Publish/Core/MVC/Legacy/View/Provider/Block.php on line 59
```

Potentially also occurs with `Legacy\View\Provider\Content`.
EZP-22220: Moved CSRF token generation after authentication occured

This avoids the session to start if authentication failed.
Also removed manual session start since it's not needed. CsrfProvider will do it seamlessly.
Merge pull request #814 from ezsystems/impl_EZP-22220_RESTAuthenticationSymfony

Fix EZP-22220: Session creation in REST API doesn't use Symfony SecurityContext
Fix EZP-22743: Missing refresh session link in the root resource of the REST API
Updated the Root schema to be in sync with the Root.xsd file
Fix: EZP-22612 : URLAliasService - sort pathElements by prioritized languages before matching