Increase diff components reusability
Right now Diffs app is tightly coupled with the Notes app which handles Issues. That creates a problem when we want to [re-use the Diffs components anywhere else](https://gitlab.com/gitlab-org/gitlab/-/issues/385901).
That is caused by using:
1. Notes app components that rely on a Vuex state
2. Mixins that also rely on a Vuex state
3. Heavily relying on a Vuex state in our own Diffs components
In order to tackle this and increase reusability and maintainability we need to do a major refactoring of the code:
1. Replace mixins with composables (should be possible after Vue 3 migration)
2. Replace Vuex with composables where possible
3. Replace Vuex with props\events if necessary
Refactoring details to be defined.
issue