VIM-613 Fix repeat after 'd$'

Previously, repeating a 'd$' command would incorrectly delete the
newline from the line.
VIM-705 Fix repeated multiline indent

When a visual mode command is repeated, code calls into
MotionGroup#toggleVisual() to setup a 'fake' visual mode selection. But
when MotionGroup.moveCaret() is called, it notices that the indent
command has the FLAG_EXIT_VISUAL flag, and leaves visual mode right
away.
VIM-567 Extend :! to allow running non-filter commands

This commit allows the Ex command '!' to be ran without a range, with
the results displayed in a window.

For example, run ':! ls' in normal mode for a quick directory listing.
VIM-536 Fix 'cc' on second-to-last line in file

Previously, 'cc' on the second-to-last line of a file would instead open
a new line after the last line of the file.
Made moveCaret(Editor, int, boolean) private
Default value for @NotNull field mode
Merge branch 'vim-705-multi-line-indent-broken'
Code style
Removed debug output
Get rid of Reader and Writer classes in executeCommand()
Nullity checks
Merge branch 'vim-567-run-external-command-in-window'
VIM-515 Fix cW command detecting end-of-word incorrectly

A cW command on text like 'x$$$$' or '$xxxx' would incorrectly delete
just the first character, and not the rest.
Moved line line position calculation before deletion
Merge branch 'vim-536-cc-second-to-last-line'
Added Tuomas Tynkkynen to the list of contributors
Updated the changelog
Merge remote-tracking branch 'dezgeg/fixes/vim-515-cW-command'
Updated the changelog
Fix IOOBE when 'i)' motion doesn't find other delimiter

Found by fuzzing.