Change instant execution serialization to write the edges between work nodes to the cache, instead of the dependencies between tasks. This will allow nodes other than tasks to be deserialized and added back to the work graph. Also short-circuit the node dependency calculation when reading nodes back from the cache, as the calculation has already been done.
Change instant execution to serialize all work nodes to the cache, rather than just the task nodes. In this change, only a placeholder is written to the cache for node that are not task nodes, and this are discarded on read.