Added positional arity to constructor type.

In order to support keyword parameters with default values in the Rascal
implementation minor additions have been made. The basic idea is to
refine the concept of arity:
- arity: as before the number of fields in a constructor.
- positionalArity: the number of required positional fields in a
  constructor.
- arity - positionalArity = number of fields with default values.

- In Type 
  - the method getPositionalArity has been added.
  - the method hasDefaults has been added 
    (true if positonalArity != arity)
- In ConstructorType 
  - a new constructor has been added that enables defining the
    positionalArity for that constructor.
- getPositionalArity is redefined to return the actual positionalArity.
Merge branch 'keyword-parameters'