Refactor MergeRequest#calculate_reactive_cache to be reused for exposed artifacts report
Problem
In !18385 (merged) we introduced a new CI configuration keyword artifacts:expose_as
that will allow arbitrary job artifacts to be displayed in the Merge Request widget as quick link.
In order to do that we leverage the existing components for displaying test reports (in the backend and frontend) but the code needs to be refactored and cleaned up to ensure it's generalized enough to be compatible with test reports as well as exposed artifacts.
Example: !18385 (comment 228769253)
What to do?
Find and solve all TODO instances in:
MergeRequest
Ci::CompareReportsBaseService
Ci::GenerateExposedArtifactsReportService