Add an outgoing variants report This commit introduces an `outgoingVariants` task which generates a report of the outgoing variants of a project. This is useful for debugging and understanding variant aware resolution.
It becomes possible for a plugin author to understand what variants are already produced by a project based on the plugins applied, and what artifacts are attached to what variant.
Check for already registered model in TaskContainer A ModelMap<Task> is a shadow version of the TaskContainer inside the software model. Although difficult, it is possible to create an element in ModelMap<Task> before creating the same element in TaskContainer. This creates a duplicate instance that, in some case, cause both instance to be used in the task graph causing issues.