implement type semantics for lists and sets
adjust set/list typing semantics for types with entryType NULL.

Such types can not be specified in the syntax, but may be
produced by typing semantics for empty lists / sets.
add common base class for list and set types
add ImplicitVarContainer interface to metamodel and implement it
typing for ImplicitVarDeclaration
add helper judgments for typing and common type
add typing semantics for new expressions and list/set cardinality
fix helper judgment
add additional typing checks for list/set expressions