Qualifiers were not moved for non-pointer non-simple types.
Add additional support for many special cases such as templates,
requires clauses, long qualified names.
Fixes https://github.com/llvm/llvm-project/issues/57154 and
https://github.com/llvm/llvm-project/issues/60898
In the initial commit concerns were raised that East and West are westcentric terms and should not be used. Thus you should stick here to Left and Right the same terms we use in the configuration.