Improve performance of finding file by file_hash in diff_by_file_hash
### Background
Finding a file by `file_hash` param in `diff_by_file_hash` action can take some time.
### Proposal
Inspired by @slashmanov's suggestion in https://gitlab.com/gitlab-org/gitlab/-/issues/387246#note_1781554417, we can utilize associated `MergeRequestDiffFile` records to find file by `file_hash` in `Projects::MergeRequests::DiffsController#diff_by_file_hash`.
We do have to consider other edge cases wherein `MergeRequestDiff` has no associated `MergeRequestDiffFile` as we clean them up after merging for non-latest diffs.
Basic benchmark shows massive improvement for large MRs: https://gitlab.com/gitlab-org/gitlab/-/issues/387246#note_1782384779.
issue