fix resume/retry for optional output steps
We weren't testing this code path, which only gets applied in the graphql layer... Added a test
that flexes the relevant case, where we had steps that had no output at all. This would not get caught by
the simplistic check that looked for any steps that did not yield the expected output.
This diff makes it so that all downstream dependencies of failures will be re-run. It does change the
resume/retry behavior for steps that did not yield all of its optional outputs, but succeeded, by not
including them in the resume/retry run.
Test Plan: added graphql test
Reviewers: alangenfeld, sashank
Reviewed By: alangenfeld
Differential Revision: https://dagster.phacility.com/D2265