### Description
* Task children and dependencies are stored together in a single
datastructure -> task edges
* task edges is a map keyed by target task id and using a bitfield for
common edges (child, output, cell 0)
* removed lazy_remove_children feature flag -> this is always on now
(Disabling it doesn't make sense as it negatively affects performance,
we had the feature flag in case it it is broken, but seems fine)
* When a task becomes Done, we use a Vec instead of a HashMap for better
memory efficiency. It doesn't need to modified after that.
### Testing Instructions
<!--
Give a quick description of steps to test your changes.
-->
---------
Co-authored-by: Benjamin Woodruff <benjamin.woodruff@vercel.com>