Make it gracefully handle unexisting pipelines and refactor iterating all the merge request paths.
And add some specs.
Turn ExpirePipelineCacheService into Worker so it can fetch all the merge requests for which the pipeline runs or did run against.