fix metamodel for recent syntax changes: use ParamDeclaration class for params
interpreter: move environment setup to helper method
rename GenericRegister methods: now changeable
fix GenericRegister: types are no longer stored by name
small fix to isGeneric()
fix param type matching: use common type

When expressions of two different types are passed for parameters
of the same generic type, do not use the first type and fail if the
second is a super type. Instead, always use the common super type.

Closes #37.
move param type mathing to an own judgment (see #37)
add small test for new type matching