Reworked the collection of file dependencies during dependency graph traversal, so that the files from these dependencies are ordered the same way as other kinds of dependencies, rather than always ordering these files at the start of the result.
Added some constraints on the 'from' and 'to' attributes for a consumer provided variant, to help the user avoid attempting various cases that are not yet really supported. - The 'to' and 'from' attributes must be not empty. Empty 'from' basically means "I can transform _any_ input" and an empty 'to' basically means "I can produce _any_ output (without knowing what it is)", neither of which make much sense. - The 'to' attributes must be a subset of the 'from' attributes. Adding attributes to make a more specific variant is not required yet, and will break when switching 'compatible when missing' to default to true. For now, disable this case.