Do not eagerly evaluate functional types such as `Callable` when writing to the instant execution cache. Eagerly evaluate only those types whose purpose is better understood, such as `Provider` or `FileCollection`.
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.