Fix caret type for visual command or mode switch

This makes sure that the caret type is right when selecting a textobject
from visual mode or when dragging a reverse selection of just 1
character long.
Add DummyTextObject, reduce SimpleSelection abuse.

The selection classes shouldn't be used when you just want to wrap a
TextRange, this only leads to confusion.
Add extra quotes only in message, not sample text

Comparing actual with expected in the Eclipse JUnit runner is easier
when those extra quotes don't show up.
Fix indentation to be only spaces
Add VrapperPlatformException, change exception handling

This exception still needs handling, though that must be done later at
mode level.
Port safeAddModelOffset to CursorService, rename.

The previous version always had to scan the current and next line in an
attempt to avoid exceptions. Eclipse doesn't really mind querying for
newlines and can actually immediately tell use where the next line
starts, so the new version should be faster as well as integrated in the
CursorService.

Motions can use it, but they should be aware that the end of file
boundary is silently ignored.
SmartInsert bugfix and alternative fix for #275

SmartInsert shifts all offsets after the insertion, but we didn't check
if our old offset should be shifted. This meant we could end up in the
middle of a Windows newline combo, with nasty results.
Revert changes from #510

Moving the cursor one position back might not always be the correct
solution to a "bad position" error, such cases should be handled one by
one.
Calculate correct caret offset; Exception handling

Instead of failing and retrying, just make sure the caret position is
always before or after a newline by checking the line information. This
preservers the position for longer inserts.

In hindsight this commit might not improve much - we only use
smartInsert(String) for single-character inserts and hence the fallback
which does originalOffset + 1 might also work. In the general case, this
workaround might have bitten anybody calling smartInsert with a longer
string.
Rework SimpleSelection for inclusive visual

When we have a visual selection, the 'selection' option defines if the
character beneath the caret gets included.

We use a hack for left-to-right selections where we draw the caret one
character to the left (see EvilCaret) because Eclipse doesn't support a
Vim-like selection. This means though that the caret can conceptually be
in another spot than just the end of the selection, so make sure to hold
the correct caret position in the SimpleSelection itself.
Make ge / gE motion Vim-compliant in visual.

Vim has an undocumented feature where ge or gE actually react in an
"exclusive" manner in visual mode, even though the regular motion is
"inclusive".
Fix visual inclusive selection, break visual tests

For starters, the selection behaved like an exclusive one to most of the
codebase, with no proper support for the 'from' and 'to' properties. In
pull request #236 a fix was made to return this caret position, but it
was incomplete as "exclusive" selections actually need different
behavior. The first part is now in properly passing the 'from' and 'to'
fields every time a new visual selection is made. The 'to' field should
now always reflect the position on which the caret is drawn.

Secondly, the code which updated a selection after a motion was
incorrect: reversing the selection one character at a time would
sometimes fail - in such a case the selection would go from +2 to -2.
The code is a lot saner now: it starts with 'from' / 'to' and then makes
sure these two positions are included in the selection. This does mean
that the selection is now really inclusive: the position where a motion
points to gets included.

This is also an alternative fix for #510 as the changes in #236 didn't
take care of Windows newlines, which might cause a Position in the
middle of a Windows newline combination to be returned as the 'to'
position.

Most tests are broken by this commit because the tests don't yet include
the first character on which a motion lands. This is for a following
commit to fix.

Fixes #540.
Fix tests for inclusive selection, extend others.
Allow lossless cycling between linewise and visual

When switching between visual and linewise visual in Vim, the visual
selection will always return to its original (shorter) version.

Simply use the stored 'from' and 'to' properties of the selection to get
this right.
Documentation
Remove hacks for old inclusive selection

Ad-hoc workarounds should no longer be necessary,
CursorService.getPosition() and Selection.getTo() should return the
correct caret position (and actually check for windows newlines in the
process).
Remove getSelection method

SelectionService never returns null anymore and will automatically fix
the visual selection for "inclusive / exclusive" mode.

The checkForWindowsNewlines method is also unnecessary as
addSafeModelOffset makes sure to skip newlines.
Javadoc, explicitly clear selection
Clean imports to fix build warnings.
Fix import warning.