Added `getLocationOnly()` to file system properties, to provide lazy access to just the location of the file system element, rather than both the location and the content of the file system element. This can be used when mapping the location of a task output to produce an input to some other task, without implying a dependency on the producing task. For example, an IDE project file generation task may need to know where some output will end up (so need to know its location) but does not use the content of the output.
Allow `RegularFileProperty` and `DirectoryProperty` types to be used on artifact transform parameter objects, and take care of fingerprinting and building the files before running the transform. Reuse the mechanism that allows instances of generated classes to describe their state to the isolation infrastructure for other core Gradle types, such as `ConfigurableFileCollection`, `Provider` and `Property` and remove the custom isolation logic for these core types.