Introduce a way to restart selection of a module This commit allows restarting selection of a module from a conflict resolution rule. The idea is to be able to restart selection when "new information" is available. One use case is the range selection of a module. If, during graph visit, a different range is seen, then we know we can potentially have disjoint ranges, in which case classic resolution occurs, or intersecting ranges, in which case we need to select the highest version in range. This commit prepares a different solution to the problem by allowing us to restart selection once we determine we have two intersecting ranges.
It's worth noting that this commit requires temporary disabling of the tests, because the rule doesn't enforce this behavior: it will now create an infinite loop, without ever selecting a version. The reason is precisely that we don't make this "new information" available to selection. This will be implemented in a subsequent commit.