Add toString method in LineInformation class.
Add utility method safeAddModelOffset.

This helper function tests if an offset change will put us in the
middle of a newline sequence by checking the line information of the
next or previous lines.
Selection marks now support exclusive selection.
Keep cursor near selection end on visual mode exit

Vim will keep the cursor in the very same spot when exiting visual mode
whereas Vrapper would always reset the selection to the top- and
left-most point of the selection.

Try to reset the pointer to a point nearest the end of the selection,
accounting for reverse selections.

Note that this isn't correct for visual line-wise mode as the caret
can only be drawn at the end of a selection.
Use parentheses around int addition for toString.
Restore reversed selection uses vertical bar caret

Before no special case was present for a reversed selection.
Don't update sticky column during selections.

Linewise visual mode actually has a To position which should be taken
into account, so its better to always manually update the stickyColumn
before setting a selection.
Handle linewise selection, cursor past line.

When switching to normal mode, the cursor would always go past the line.
Normalmode has a check built in (see placeCursor()) to prevent this, but
the visual modes don't.