Improve the renderign of new and existing discussions
by reducing the number of watchers on each object & array.
Previously every discussion change would trigger an update for every
discussion component.
Also tidied up some components to get them closer to our docs.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/51506
This caused many pain points when working with it.
Part of the data was camel cased the other snake case.
Other parts where snake case & then getting converted in components,
this conversion has the potential for leaking memory.
This changes that & makes it consistent with what it returned from the
API, snake case.
This re-enables legacy diff notes on the merge request diffs
This feature was not workig correctly after the Vue refactor
LegacyDiffNotes have no `position`, instead they only have a `line_code`
As an extra, this also re-enables commenting on legacy diffs.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/48873