Refactor config handling in cli.py
Move the config file loading in the main cli group so that every command in this group have a consistent config loading behavior.
This means that some cli commands "signatures" have changed:
- every command now accepts a -C/--config-file option
- the --cls has been dropped: either you give a config file, or passing a --database or --url option determine the 'class' of backend to use,
- the api-server command 'config-path' argument has been dropped (use --config-file instead),
Also remove the main function from listener.py, it's now in cli.py
And make configuration of SWHElasticSearchClient use an explicit and consistent behavior instead of looking the config file for this entity in a hard to find dedicated file, expect a config object (dict) as constructor kwargs and look for its config under the 'elasticsearch' section.
Move sheduler's default conf in swh.scheduler
Migrated from D1026 (view on Phabricator)