Improve headers for diff and patch of a merge request
## Why are we doing this work
[MergeRequestsController#show](https://gitlab.com/gitlab-org/gitlab/blob/8f500e4f4d6e11e1231a70bc5b1ffc8119278ac5/app/controllers/projects/merge_requests_controller.rb#L395-406) can be rendered as diff or path:
- [diff](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109391.diff)
- [patch](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109391.patch)
Currently, the cache headers are:
```
cache-control: no-cache
pragma: no-cache
```
However, at least the public content can be served via CDN:
```
cache-control: max-age=3600, public, must-revalidate, stale-while-revalidate=60, stale-if-error=300, s-maxage=60
etag: "e12a66ade493301905400bc87638b510"
```
## Relevant links
- https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/11554#note_1271042070
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/98110+
- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109391+
issue