Renamed “VersionSelection” rules to “ComponentSelection” rules
Changed behaviour of componentSelection rules

- Default version matching will be applied first. Custom rules are only evaluated where version matches selector
- Any defined rule can reject the candidate component. If any rule rejects the candidate, it is not considered
- A reason must be specified when rejecting, for reporting purposes.
- Once a rule rejects a candidate, no other rules are evaluated (short-circuit rules).
- Rules that require additional inputs (`ComponentMetadata` or `IvyModuleDescriptor`) are evaluated _after_ rules that do not declare these inputs.
More test coverage for component selection rules
Test that maven modules are not affected by rules that take IvyModuleDescriptor inputs