Honor dependency attributes when they override configuration attributes This commit fixes artifact selection so that when we resolve artifacts, we also use the attributes defined on the dependency itself, if ever. Before, when we were resolving artifacts, only the consumer configuration attributes were used.
Provide ResolvedVersionConstraint when resolving component id The 'resolved' version constraint is critical to resolving the component id for a given selector. In order to honour all constraints in the resolution process, this `ResolvedVersionConstraint` will be composed of more than just the constraints for a single selector.
With this change, the `ResolvedVersionConstraint` is constructed prior to resolving the id, rather than being constructed as part of that process.