Rework visiting a `Configuration` so that its contents are treated as a sequence of collections, rather than a single monolithic collection of files. This will allow visitors such as continuous build or instant execution some finer-grained visibility into the contents of the `Configuration`. In this commit, the collections do not carry any useful information and the granularity is per artifact, which is too fine-grained. Later commits will address this.
Merge `FileCollection.registerWatchPoints()` into `visitLeafCollections()`, so that a visitor can optionally receive the 'spec' or definition for each participant in a file collection. This will also later be used by instant execution to serialize some file collection participants as files and some as definitions.