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