Do not provide target attributes to `ArtifactTransform.transform()` An `ArtifactTransform` instance is now a simple File->List<File> transformer. The target attributes are not a direct input into the transform function. This will allow us to be more efficient in our caching of transform outputs.
To provide target-specific transformation behaviour, the transform instance for a particular target should be configured with the necessary target information.
Don't permit arbitrary configuration of `ArtifactTransform` instances Previously, an arbitrary closure could be used to configure any user-defined `ArtifactTransform` instances. This mechanism makes it difficult to isolate the transform process from the calling process, and prevents optimizations like parallelization, caching, etc.
Instead, a user can now provide a set of parameters that are provided to the instance via constructor injection. Any object is currently supported, with a plan to restrict this to `Serializable` parameters in the future.