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
Use separate cache for file access time journal Storing a file access time journal inside each cache causes a lot of contention in particular with caches that require a lot of exclusive access like the artifact cache.
Instead, a new `journal-1` cache that is managed by a user-home-scoped service is now used to keep track of file access times for all caches that want to use it.