Add `ConfigurableFileCollection.finalizeValue()` to allow the value of the file collection to be finalized. The initial implementation is too eager, in that it calculates all of the files of the collection. Instead, it should calculate and finalize all of the roots of the collection. Later commits will improve this.
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.