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),