Locale provider as a service

Locales are provided by a service.
The default service gets the locales from configuration, but it can be overriden by any service that implements ``LocaleProviderInterface`` to retrieve them from DB for example.
undo