Rewrite of line boundary movement actions

Rewrite of line boundary detection logic to address numerous cursor movement issues (#555, #405, #227, #225, #224, #185, #124 and #98).

This also removes the last uses of the gui.SelectionMover class, allowing it to be removed in a subsequent PR.
This might fail if the current position is at some superscript text directly followed by subscript text, or inverse, no? Seems that WebODF does not support that yet (at least some quickly made up example was shown without sub/super effect), but once it does, this heuristic might fail.
No better proposal right now, just mentioning, to show-off smartass-potential :lollipop: