Spike: Rendering MR diffs from diff blobs instead of line-by-line json structures
<!-- This template is a great use for issues that are feature::additions or technical tasks for larger issues.-->
### Proposal
<!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. -->
In the context of the ~"Performance Round Tables::Code Review" and following the experience of the https://gitlab.com/gitlab-org/gitlab/-/issues/389282+, the idea came up of rendering the diff from an entire blob rather than metadata-annotated line by line json structure.
In essence this is what we're talking about:
| Before(now) | Proposed |
| ------ | ------ |
|  |  |
# Known challenges / open questions
Things we currently don't have an answer for:
1. **How big are the performance gains?**
1. In terms of backend response times? (time to first byte but also downloading times in slow networks)
1. In terms of frontend performance? (memory usage, LCP, TBT, ...)
1. **How can we match Notes/Comments to Diff Lines?**
1. **What features are affected by not having the raw lines content in our Vue app?** (eg: Suggestions would need a way to grasp the raw lines whether from the DOM or from the server).
# Expected outcome
These questions can be answered by iterating on the PoC codebase but we are aiming to get a good understanding of how this could be done within the GitLab MR app, too.
**Definition of done:**
* a list of tasks to implement a viable migration path
* a comment reporting the findings for each one of the questions above in Known Challenges section.
<!-- Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section.
-->
<!-- Label reminders
Use the following resources to find the appropriate labels:
- Use only one tier label choosing the lowest tier this is intended for
- https://gitlab.com/gitlab-org/gitlab/-/labels
- https://about.gitlab.com/handbook/product/categories/features/
-->
issue