[dagit] Fix issue rendering Gantt for dynamic pipelines with a collect that has non-dynamic inputs
This extends the demo pipeline slightly to cover a test case created by a user in Slack - I also refactored and commented the algorithm responsible for this so it's easier to follow.
This diff also tweaks the algorithm slightly so that upcoming (un-executed) dynamic paths are still included in the "planned" steps while the run is executing. When all of the parent steps have run, the placeholder is removed and we use the invocations observed in the logs (which may be zero). Video here:
Test Plan: Run tests, Run dynamic_pipeline with new structure
Reviewers: dish, alangenfeld
Reviewed By: dish
Differential Revision: https://dagster.phacility.com/D7814