Add analysis of expressions of unknown types

The types hierarchy has been extended to support types that are arguments for
generic components and interfaces. Attributes for those types, i.e.
"@integer()" and "@number()" that limit possible types are also taken into
account. Moreover, the analysis of expressions has been changed to handle
unknown types of expressions implied by the type parameters.