Add a way to gracefully stop the workers
Currently, if we stop the workers:

```
kubectl scale --replicas=0 deploy/datasets-server-prod-datasets-worker
kubectl scale --replicas=0 deploy/datasets-server-prod-splits-worker
```

the started jobs will remain forever and potentially will block other jobs from the same dataset (because of MAX_JOBS_PER_DATASET).

We want:
1. to detect dead jobs (the worker has been removed), and move them to the waiting status again
2. also if possible: clean the workers (ie: stop the current jobs, and move them again to the waiting status - or move to INTERRUPTED state, and create a new waiting one) before stopping the worker
Add a way to gracefully stop the workers: Currently, if we stop the workers:

```
kubectl scale --replicas=0 deploy/datasets-server-prod-datasets-worker
kubectl scale --replicas=0 deploy/datasets-server-prod-splits-worker
```

the started jobs will remain forever and potentially will block other jobs from the same dataset (because of MAX_JOBS_PER_DATASET).

We want:
1. to detect dead jobs (the worker has been removed), and move them to the waiting status again
2. also if possible: clean the workers (ie: stop the current jobs, and move them again to the waiting status - or move to INTERRUPTED state, and create a new waiting one) before stopping the worker