search: rewrite lucky job for dynamic query generation
Created by: rvantonder
I rewrote it. The diff is kinda impenetrable. Better to do a live walkthrough review but putting it up for visibility now. Highlights:
- There is now a function to create a Generator, which when called yields the next job to run and the continuation.
- Jobs take the generator, so now it's not possible to enumerate generated functions statically by printing the job (at least not, in the general case where generated queries are unbounded). So: test are updated to create a Generator and just print the generated queries.
- The generated jobs return errs/proposed queries directly related to the query that ran, so those are collected and propagated.
There is room to improve the way generation is structured, I'm not super happy with the control flow, and the job is kinda large now that it got merge with the Sequential
logic, but it's good progress.
Test plan
Updated tests.