EE port: Properly expire cache for **all** MRs of a pipeline
EE port of gitlab-org/gitlab-ce!10770
What does this MR do?
It ensures the Etag cache gets expired for all MRs for which the pipeline runs/ran against, and not just the MRs for which the pipeline runs/ran on the latest commit.
To ensure the state transitions of the pipelines are not slowed down, the ExpirePipelineCacheService is transformed into a worker.