Extend the job API to allow more specific queries
This adds support for:
- Obtaining all jobs after a given id
- Obtaining all jobs started, submitted or ended after a given time.
- Obtaining jobs in a set of states or healths.
These queries make it easier to construct smart job caches, for
example retrieving all unfinished jobs
(.state_not(State::Finished)
), all jobs added since we last queried
(.id_after(max_id)
), or all jobs that underwent some transition
after our last query (.ended_after(query_time)
).
Also add some warnings to limit()
about safe usage and caveats.