Correct selection after multi edit

This is a complexity monster but it comes with tests. And I like complexity monsters that come with tests. ;)

The changed method `applyMultiTextEdit` should preserve the selection after changes are applied to a document. This worked fine so far but with the upcoming save actions/auto edits we need a more powerful implementation.

For example the logic needs to detect if a change happens inside of a selected region or if changes happen before and after the cursor position at the same time. With our current refactorings, completions and other features that use this method, we don't have a need for such use cases, therefore they didn't work.

Because save actions/auto edits are not yet merged, the changes by this PR shouldn't have any effect to the current behavior of the IDE. I'm opening this as a separate PR nevertheless, in order to not make my other PRs more complex than needed.
I'm fine with removing the unicode characters but would still open it for discussion. ;) We already have some of them in strings/comments. Replacing them with a unicode literal is not helpful. Also, encoding problems are easy to fix for developers.

Now, after my auto edit PR can convert ASCII to UTF, I already see the next feature request: Let the IDE display ASCII as UTF while still saving only ASCII. I wonder what comes after that.