[514079] Improve mirroring support

The changes introduced in https://git.eclipse.org/r/#/c/93726/ to
support mirroring are incomplete and lead to a very confusing state. If
the user swapped the sides in the CMV, the SMV tree continues to show
diffs with the same directional overlays. Also the tool bar actions have
the tooltips and operate in the original direction; thus, contradicting
the side shown in the CMV.

With this change, we also adapt the changes in the SMV, if the user
switched the sides in the CMV.

Moreover, this change also simplifies and improves the way how the
mirroring support is implemented by creating a new viewer
when the mirroring state changes instead of switching all the content
and label providers within each implementation class. Thus, this commit
partly reverts the previous change 93726 and replaces it with a more
thorough and straight-forward implementation.

Bug: 514079
Change-Id: Ia91454e421a6916fa8e7d62eded3180f7905b28a
44 files changed