Traits implementation

Do *not* merge as is. This pull request is intended to facilitate peer review, make sure everything passes on CI. 

It should only be merged once everyone is happy and more tests are written. It makes it easier for people to try this out.

This contains a first implementation of traits that should be discussed. In particular, look at the `org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy` class for examples.