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 - Hacky approach for syncing IntelliJ selection state with internal state.
Revert "DONT PUSH - Hacky approach for syncing IntelliJ selection state with internal state."

This reverts commit 27df98619d203ec767937fb73eefa29ae577eaac.
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 - prevent fuzzer from crashing on some visual actions
DONT PUSH - empty document workarounds
DONT PUSH: lame attempt at speedups
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.