Added tag 0.17.0 for changeset b7f31a97cf67
monitor/sched: fix a non obvious logic error

A combination of small _step and infrequent enough cron rule
could lead to a starvation of things to run (the runnable list
remains void forever).
cli/monitor: add a --vacuum parameter

The vaccuming of old tasks is now managed by the monitor itself.
Hence there is no need for a cron job to manage it.
use the `isodate` package to mange iso8601 durations
cli/vacuum: accept a --queued flag

This will permit to removed the queued tasks.
doc/readme: redirect to readthedocs
add a .readthedocs.yaml config file
doc: backport most of the readme into the sphinx doc
cli/monitor: restore the --debug-port switch
replace a number of .format calls with f-strings
api/freeze_operations: by default, reset the known operations

We use the `path` of collected operations to
perform the reset. This should cover most reasonnable
scenarios but not those where some operations have
been moved from one module to another.
replace imp.load_source with a new thing based on importlib

The builtin imp module has been deprecated for a long time
and is gone in Python 3.12.
api/freeze_operations: remove the domain_map feature

It has never been used.
doc/readme: update according to recent changes
cli/unprepare: provide a command line to remove a scheduled operation
api/unprepare: to delete a scheduled/prepared operation
cli/list-tasks: accept a --domain parameter
monitor/scheduler/step: re-init the runnable list

Hard to catch that in tests.