FUZZER - don't crash on some visual actions
VIM-855 Fix regexp character class bugs

Previously strchr and istrchr didn't consider NUL chars as end-of-string
terminators. This caused problems in regexps using character classes:
a regexp like "[^a]bc" would be effectively treated as "[^abc]bc" - i.e.
some literal characters from the rest of the pattern would accidentally be
included in the character class.
VIM-210 Fix focus issues with the Ex panel

Previously, if the editor window had been splitted, under certain
conditions some actions related to the Ex panel would cause the editor
focus to change to a different split.

The required conditions for this bug to occur:
    - no docked windows (like the Project sidebar) are open
    - 'View -> Navigation bar' is disabled

At least these actions triggered the bug:
    - search with /
    - successfully executing an Ex command
    - dismissing the Ex window with Esc
    - Ex commands that opened the output panel (e.g. :!)

All the deleted lines of the form
    FileEditorManager.getInstance(project).openFile(vf, true);
seem to be very old, non-functional workarounds for the focus issue.
Move ChangeActionTest.doTest() to VimTestCase.

This method is convenient in other tests as well.
Add tests for case changing operations

Add tests for the following commands:
- gu, gU, g~ in normal mode
- u, U, ~ in visual mode
Add unit tests for Ex ranges

Adds tests for ranges in Ex commands. Almost every kind of range has
basic tests, except the following are still totally untested:
    - \/, \?, \&
    - register ranges
    - syntax errors in ranges
Add testcase for '>' in visual block mode
Add unit tests for some replace commands

Adds tests for: |r|, |s|, |R|, and <Ins> in insert mode.
Add tests for change number operations (<C-A>, <C-X>)
Add few simple mark tests.
DONT PUSH - extra tests for {c,d}{w,W,e,E}
DONT PUSH - workaround empty files
DONT PUSH - don't crash if file doesn't end in newline.
DONT PUSH - Workaround bunch of crashes when file is empty
DONT PUSH - Add 'empty file' kludge
DONT PUSH - empty document workarounds
Add tests for w, e motions

Failing tests:
    testWordForwardMotionOnEmptyLineFollowedByEmptyLine
    testTwoWordsForwardMotionOnEmptyLine
    testWordEndForwardMotionOnEmptyLineFollowedByTwoEmptyLines
    testTwoWordEndsForwardMotionOnEmptyLineFollowedByTwoEmptyLines
Fix newline behaviour on b, w, e motions
Add some aw, iw tests.
Overhaul iw, iW, aw, aW motions