[Fix #943] Fix auto-correct interference with SpaceAfterComma

The SpaceAfterComma (and possibly other cops that include
SpaceAfterPunctuation) can destroy code if other cops are auto-
correcting in the same area. The solution is to make a bigger
substitution, so conflict resolution logic kicks in.
Merge pull request #951 from jonas054/fix_943_autocorrect

[Fix #943] Fix auto-correct interference with SpaceAfterComma
failing test case for NilComparison autocorrect
[Fix #954] Auto-correct `x === nil` in NilComparison
failing test case for NonNilCheck
[Fix #953] Auto-correct properly code like `!nil?` in NonNilCheck
Add failing test case for StringConversionInInterpolation
[Fix #952] Handle implicit receiver in StringConversionInInterpolation
proper failing test case for ClassMethods
[Fix #956] Apply ClassMethods check only on class/module bodies
Fix SpaceBeforeFirstArg cop for multiline argument

and exclude assignments
Merge pull request #945 from cschramm/space_before_first_arg

Fix SpaceBeforeFirstArg cop for multiline arguments
[Fix #948] Avoid auto-correction changing code meaning in Blocks

Re-parse and check that the AST hasn't changed when doing auto-
correct in Blocks cop.
[Refactor] Extract module AutocorrectUnlessChangingAST
Merge pull request #959 from jonas054/fix_948_do_end_auto_correct

Fix do end auto-correct
[Fixed #946] Allow non-nil checks that are the final expression of a
predicate method definition
[Fix #957] Allow space + comment inside ( { and [
Merge pull request #960 from jonas054/fix_957_space_inside

[Fix #957] Allow space + comment inside ( { and [
Bump version to 0.20.1
[Fix #800] Do not report [Corrected] if correction wasn't done

A few cops that support auto-correction avoid it in certain cases.
They should only print [Corrected] if a change was made. Solution is
to reintroduce the exception CorrectionNotPossible that was removed
a while back.