* Initial work on Execution class
* Executions are now created and deleted when jobs are performed
* Added execution.heartbeat()
* Added a way to get execution IDs from execution registry
* Job.fetch should also support execution composite key
* Added ExecutionRegistry.get_executions()
* execution.heartbeat() now also updates StartedJobRegistry
* Added job.get_executions()
* Added worker.prepare_execution()
* Simplified start_worker function in fixtures.py
* Minor test fixes
* Black
* Fixed a failing shutdown test
* Removed Execution.create from worker.prepare_job_execution
* Fix Sentry test
* Minor fixes
* Better test coverage
* Readded back worker.set_current_job_working_time()
* Reverse the order of handle_exception and handle_job_failure
* Fix SSL test
* job.delete() also deletes executions.
* Set job._status to FAILED as soon as job raises an exception
* Exclusively use execution.composite_key in StartedJobRegistry
* Use codecov v3
* Format with black
* Remove print statement
* Remove Redis server 3 from tests
* Remove support for Redis server < 4
* Fixed ruff warnings
* Added tests and remove unused code
* Linting fixes