Remove old diffs when closing an MR
When a merge request is merged, all old versions of the diff for that MR are deleted.
However, when we close a merge request, this doesn't happen. Instead, all versions are kept forever.
I think we can simply apply the on-merge logic to the on-close logic. This should reduce the size of the merge_request_diffs table (and children)
The external diffs mechanism means that the pressure to reduce the size of these tables is off a bit, but it's still something that seems reasonable to do, and it's not as if object storage is free, either.
Both closed and merged MRs can be reopened, so I don't see a good argument to treat them differently.
The user-visible impact of this is that old "merge request versions" would begin to disappear when an MR is closed, as they do currently when an MR is merged.