New branch 'jsgen'
Branch Testing
Deleted TEST
Added 'default' values to the metamodel.

I have added a new annotation, @default(VALUE), in order to assign a
default value for an attribute. Since we cannot annotate the value
itself (because it is attached to the real field, never an accessor)
the annotation must go with the type (AnnotatedType):

trait A {
  val a1: String @default("")
  val a2: Int @default(5)
}

If we try to access the default value ('default' method at MetaModel)
and it is found a value that does not conform the attribute type, an
expection will be arised.

There is still a lot of work to go, because currently the MetaModel
can only understand constant literals.
Added a 'base' method to get the main base class.

I have added a new method at the TypeAPI of the metamodel which should
be used to get the main base class (for instance: Interaction, Agent...)

If we are going to declare entities with multiple inheritance, we
should take care with the linearization order, because this method is
quite dummy. It just returns the second element in the list of
baseClasses if its length is greater than 3:

(self, Object, Any)               // base returns None
(self, Base1, Object, Any)        // returns Base1
(self, Base2, Base1, Object, Any) // returns Base2
Default values at annotations are now parsed using 'eval'.

The runtime metamodel is now able to evaluate the annotation argument
(remember: it's a Tree!). In order to do so, I have added a tool-box
in the runtime metamodel, which contains the eval method. I think that
the implementation may be moved to the generic metamodel, but it
involves adding new concepts such as mirror and toolbox.
Added a 'pending' case to test "complex" default values.

(Not very) "complex" default values are failing due to the lack of
idempotence while re-typing trees. So, I have added a test to be aware
of that situation.
Using strings as @default arguments.

This solves the problem of typing idempotence. It's a little bit ugly
but it works much better.
@default(value) is now type-safe.

Now the returned type is checked for type-safety. If the string
default value does not conform the attribute type, an error is arised.
Added a method (finder[A]) to build the model automatically.

That method locates all the builder in the System (A) and extract the
corresponding types, to make the model. I have added a test case too,
and I have found out that the model types should be "as seen from" the
system, to make the testing tasks easier.
Added a method that returns the number of entities in the model.