Merge pull request #812 from MLoureiro/bdd_sw_add_choosedb_step

SetupWizard: add choose db step since travis have mysql and postgresql
EZP-21889: implement ContentTypeIdentifier criterion visitor for Solr storage
Merge pull request #813 from ezsystems/impl-EZP-21889-contenttype-identifier-solr

Implement EZP-21889: ContentTypeIdentifier Criterion visitor for Solr storage
EZP-22733: implement missing method
EZP-22733: use role exception conversion gateway
EZP-22734: fixed wrong identifier configuration
Fix EZP-22661: Map SPI VersionInfo statuses not supported by API
Fix EZP-22661: Unit test VersionInfo domain mapper
Merge pull request #817 from ezsystems/fix-EZP-22733-role-exception-conversion-gateway

Fix EZP-22733: Role exception conversion gateway is missing a method and is not used
Merge pull request #818 from ezsystems/fix-EZP-22734-usergroup-limitationtype-config

EZP-22734: UserGroup limitation type is incorrectly configured
EZP-22457: fixed incorrect usage of Repository::canUser()
Merge pull request #815 from ezsystems/EZP-22661-map-VersionInfo-status

Fix EZP-22661: Map SPI VersionInfo statuses not supported by API
Fix Test class name from #815 merge 55ded82350406a905724eafaa83281791969b560 for EZP-22661
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
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: ^/
```