Temptative fix for GROOVY-6279
GROOVY-3772: Automatic indentation in groovy.util.IndentPrinter
GROOVY-3772: Clarified javadoc
Fix enum information loss in groovydoc. Fixes #6257

http://jira.codehaus.org/browse/GROOVY-6257
http://groovy.329449.n5.nabble.com/groovydoc-information-loss-for-enums-and-generics-td5716165.html
GROOVY-3969: Groovy Console forgets size of input area

Patch supplied by Tai Siew Joon
GROOVY-6354 Allow addCopyWith for @Immutable annotation
CompileStatic fix
fixed test
Test unknown keys have no effect
Change 'addCopyWith' to 'copyWith' in @Immutable
Fix for generics via ClassNode with redirect
Added checks for null or empty map, and rewrote generated AST
Removed dead code, added check for map size
Cleanup
Removed Unused types and imports
Changed newValue==oldValue to DefaultTypeTransformation.compareEqual
Reverted equality check
getPlainNodeReference in place of ClassHelper.makeWithoutCaching
Refactored thread safety implementation of method createClassName in order to improve its performance
Made classNamesCounter final to be sure it is not accidentally null in a concurrent situation: thanks to Jochen Theodorou for the review and suggestion