Serialize references to `WorkerExecutor` to the instant execution cache. Also serialize broken `Provider<T>` instances, in the same way that broken `FileCollection` instances are serialized. This is really just a work around, and we should instead offer ways to avoid writing these broken instances to the cache.
Write enough state of transformation nodes to the instant execution cache in order to actually run the transform when read from the cache. Connect this up to the file collection serialization so that the results appear in file collections read from the cache. There are still some transformation details that are ignored for now.