Initial implementation of component metadata rules allowing modification of variant attributes This commit introduces metadata rules that support modification of variant attributes. Variant attributes are specific to each variant and can be found in module metadata. Those are NOT component level attributes, which could be used during dependency resolution. This will be added in a subsequent commit.
Create all mutable Ivy module resolve metadata through factory This will simplify the injection of services through the factory, when we will need the immutable attributes factory to be pushed to resolve metadata.