Revalidate that selected configurations match the requested attributes This commit changes the behavior of dependency resolution in case a selected configuration doesn't match the requested attributes. It could happen in two cases:
- in case no matching configuration is found, we fallback to the `default` configuration, which could have attributes that did *not* match (it was part of the selection, but in the end since no configuration was matching, it was selected anyway). - in case an explicit configuration was chosen. In that case, we didn't check that the selected configuration matched the consumer attributes.
Error messages have been improved as part of this story. It's worth noting that this commit does NOT change the selection algorithm, and we will always fallback to the `default` configuration in case no match is found. The only thing it does is really revalidating that this fallback is compatible.