Optimize merge request keep-around refs

This issue is part of phase 1 of Keep-around ref optimization/attribution (&12961)

MergeRequest

app/models/merge_request.rb:2160:    project.repository.keep_around(self.merge_commit_sha, source: self.class.name)

We should not be keeping merge-head commits. These are already kept by refs/merge-requests/<iid>/merge

CleaupRefsService

app/services/merge_requests/cleanup_refs_service.rb:69:      repository.keep_around(ref_head_sha, merge_ref_sha, source: self.class.name)

Merge requests create all their own keep-arounds. We should not be adding these keep-arounds again.

PublishService/DiffNote

app/services/draft_notes/publish_service.rb:107:        project.repository.keep_around(*shas, source: self.class.name)
app/models/diff_note.rb:192:    repository.keep_around(*shas, source: self.class.name)

Merge requests and merge request diffs should be keeping all commits relevant to the MR. So there should be no need to create keep-arounds for any MR related notes.

Edited by James Fargher