SynEdit: Fixed a rare issue with wrongly placed caret after overwriting the selection.

git-svn-id: http://svn.freepascal.org/svn/lazarus/trunk@40678 4005530d-fff6-0310-9dd1-cebe43e6787f
SynEdit: Small optimization in editing selection code

git-svn-id: http://svn.freepascal.org/svn/lazarus/trunk@40679 4005530d-fff6-0310-9dd1-cebe43e6787f
SynEdit: fixed trim-space (mode "position only") would corrupt text on certain undo. Issue 24101

git-svn-id: http://svn.freepascal.org/svn/lazarus/trunk@40680 4005530d-fff6-0310-9dd1-cebe43e6787f