Add customizable capability conflict resolution This commit disables the automatic capability conflict resolution based on the highest version of a capability and replaces it with a customizable resolution strategy.
This allows better control on how capability conflicts are handled: before this change, capabilities could be automatically upgraded just because they had a higher version, which is not always acceptable.
The new API gives finer control by providing a DSL on the resolution strategy which allows:
- explicitly setting "highest wins" strategy for a given capability - or choosing explicitly between a list of modules in conflict for a given capability
It is possible to use a generic _all_ call to configure the strategy independently of the capability.