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.
Allow a `FileCollection` visitor to skip visiting the output of artifact transforms, and use this when serializing file collections to the instant execution cache. This is only intended to be a basic step towards allow visitors better control over what to visit and in what form to visit. In this step, the API is specific to artifact transforms but will be made more general in later changes.