Consistently report conflict resolution This commit refactors how conflict resolution selection reasons are handled, in order to:
- collect the list of versions which participated in conflict resolution - report a single conflict resolution cause when conflicts are resolved several times for the same module - consistently report module replacement rules as rules, not conflict resolution. Before this change, a module replacement was reported as both a conflict and a rule
Remove code which added a default reason when the first one wasn't expected This code was probably leftover from a previous implementation which wasn't collecting reasons properly. Now, it's possible that the first dependency we see is actually a constraint, so the test didn't make sense.
It also fixes a rendering issue where multiple blank lines were added in case of rendering extra sections.