concurrency and contexts (#8) Implement concurrent job execution using FuturesUnordered (#1) Make jobs generic over context type C (#7) Refactor APIs to use visitor(ish) pattern PlanBuilder. Eliminates async-trait dependency, reduces number of allocations needed to use this API, and IMO is more ergonomic.