arbitrary JS in filters

Don’t eject from planning if we don’t have a workflow at some arbitrary point, which also means we can get rid of Option and always attach an error message at relevant points rather than just tacking on a generic “couldn’t do it” error at the end. Propagate this across all the phases (mostly for Arrow simplicity).

Add a couple tests with filters that trigger the creation of a MapReduce rather than a pipeline.