Instead of using accessors, we'll make use of an alias. (Not working yet at upper layers)
Added a way to avoid adding accessors (using def macros for aliases).
Finally, we added an alias which works fine at Speech.

So, what's the code that is generated by '@builder'? For instance, the
next entity:

{{{
@builder trait A
}}}

will generate:

{{{
trait A

object AScope {
  type A = A
  object builder extends Builder[A] { ... }
}

def A = macro entityToBuilderImpl[A]
}}}

where the 'def A' is a macro that turns the input type into a
reference to the builder inside the object.

But, hold on! where's the implicit builder? There's no a companion
object any more (in fact we have an alias replacing it) and besides,
the builder is not declared as implicit. The trick is outside, we have
added a macro which uses `entityToBuilderImpl` as well, that turns a T
into a `TScope.builder` (with an implementation based on names).
Finder has been reajusted (now companion is a def instead of a module).
Added some ways to retrieve builders.
Added @interaction, which extends 'Interaction', adds 'This' and invokes @builder.
Added new aliases @resource, @speechact...
Now, we know that builder works with abstract classes as well (not only traits).