GROOVY-5413: groovyc should emit errors when @Override is not respected
Avoid generation of Expression.class files at runtime
First experiment for a @Trait AST transformation
Trait experiment, phase 2:
   * replace delegate approach with "multiple inheritance like" approach
   * support for fields in traits
   * helper class now uses static methods and initializer method
   * if fields are defined, a helper interface is defined too
   * NO SUPPORT FOR FIELDS ON LHS OF ASSIGNMENTS YET
   * no support for trait inheritance
Trait experiment, phase 2:
   * make sure generated getters appear first to avoid potential NPE
Code cleanup for trait AST transformation
   * remove fields from helper class (not needed anymore)
   * remove the helper abstract method annotation (replaced with good old abstract methods)
   * do not generate anything for synthetic methods
Trait experiment: initial support for properties and assignments
Trait experiment: initial support for closures defined in traits
Fixed IncompatibleClassChange error with precompiled traits
Adding a trait keyword

Conflicts:
	src/test/org/codehaus/groovy/transform/TraitASTTransformationTest.groovy
Make use of the trait keyword
Remove unused imports
Move one static inner trait to top-level class
Fixed visit of declaration expressions in trait
Fix generics error with traits
Safer traits implementation:
   * prevent use of protected/private methods in traits (not possible with a dynamic runtime)
   * make private fields remapped in weaved class
   * rename "$this" to "$self" for readability
   * moved transformation to its own package
   * extracted ReceiverTransformer
   * fixed compatibility with @CompileStatic
Allow overriding properties from traits
Split TraitASTTransformation into multiple classes
Basic tests for trait inheritance
Traits implementation - Fix merge glitches
Add trait test case with an enum