Clean up jobs periodically or on some trigger
There are a few issues that this would solve:
- Cancelling a job in the GitLab UI sometimes creates zombie workers & services
- Pipelines set to disable cleanup are run for debugging purposes and require manual cleanup. (see #39, and #40)
We'll need some mechanism to run cleanup when the runner gets a cancellation signal and to run clean up periodically.