Fix task dependency inference when a mapped task output file `Property` is used as input to an `@Input` on another task. Move some test utility methods out of the artifact transform tests into a more general place, and reuse in some of the task dependency inference tests.
Change `ObjectFactory` to create collection and map properties whose initial value is an empty collection or map, and add a `convention()` method for collection properties. The "convention" for a property is the value to use when none has been explicitly specified for the property. This changes adds this for collection properties for now. It will be added for all lazy types later.