Rework some serialization to write the state of `Test` task to the instant execution cache. - Write transient fields (as we don't run the `readObject()` methods, and don't want to). - Handle arrays - Special case serialization for `TreeSet` and `LinkedHashSet`. - Remove the special case serialization for `EnumMap` and just treat this as a bean for now.
Serialize enough `Test` task state to be able to run tests. - Special case serialization for `HashSet` instances instead of `Set` instances, to allow other types that extend `Set`, such as `DomainObjectContainer` to be serialized as beans (for now). - Special case serialization for `EnumMap` instances. - Treat `BuildOperationExecutor` as a service.