VIM-702 Fix infinite loop on s/$/\r/g

If the replacement contains newlines, the line number of the current
search position needs to be adjusted. Without this, e.g. s/$/\r/g would
get into an infinite loop.
VIM-848 Show line numbers if they are enabled in the settings and there is no 'set number'
Merge remote-tracking branch 'dezgeg/fixes/vim-702-fix-substitute-infinite-loop'
Updated changelog
Version 0.39
DONT PUSH - git add .idea

Just to make fuckin' git diffs sane.
DONT PUSH - various local changes
DONT PUSH - More useful debug output
DONT PUSH: separate run-tests target in build.xml
DONT PUSH - PIT testing stuff
DONT PUSH - platform prefix change for Community Edition
FUZZER - FuzzTest is good to go
Make '>' not add trailing whitespace to empty lines.
Make 'J' not add a space in some situations

:help J tells that a joining space is not added in these situations:
    - the first line has trailing whitespace
    - the second line starts with a (possibly indented) ')'
Add some missing key names.
Optimize character case changing operations

Previously, performing e.g. visual '~' on a large file would completely
lock up the IDE. The culprit seemed to be the calls to replaceText() one
character at a time, which is not a cheap operation since each
replaceText() will for example trigger a DocumentChanged event.
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