:bug: ensure all MoveToPrevious{Type} command selects the char under cursor

the root of the problem is that when visual mode (characterwise) is
entered the character under the cursor is not selected. Unfortunately
doing so (doing a editor.selectRight() when we enter visual mode) causes
more problems (a lot of the commands rely on the cursor position being
before character under the cursor in visual mode). This commit adds a base class for all the MoveToPrevious{Type} commands which adds an `ensureCharUnderCursorSelection`
to make sure that the character under the cursor during visual mode is included in the first
`previous` (back) type command.