PIM-2341 : introduce the catalog context service

Introduces a CatalogContext to get rid of inject locale and scope in product manager, product repository, product query builder, filters and sorters and maintain this configuration

The CatalogContext is a service, it allows to configure locale and scope and to access them, if one configuration is not properly configured it throws LogicException to ensure that we are not querying data with an unexpected configuration.

Once configured,  we're sure to use the locale/scope couple in the whole application.

As it doesn't know the ObjectManager (not as ProductManager) we avoid circular reference and can avoid to inject the whole container in some Listeners.

| Q                   | A
| ------------------- | ---
| Bug fix?            | N
| New feature?        | N
| BC breaks?          | Y
| Tests pass?         | Y
| Scenarios pass?     | Y
| Checkstyle issues?  | N
| Changelog updated?  | Y
| Fixed tickets       | PIM-2341
| Doc PR              |