common base class for func and proc declarations
allow funcs and procs to declare additional generic type / number parameters

As described in #13, funcs and procs can now use and return generic
types that are not inferred from their parameters.
remove obsolete generic check auxiliary
move some generic type check logic to metamodel
add helper method to MatrixSyntaxElement to find container of given types
add metamodel and syntax for additional generic arguments in calls
abstract from func and proc calls with CallableInvocation<T>
adjust scoping for callables
fix StdlibUtil for generic arguments in calls
add typing semantics for generic arguments

Add them to the generic register. This also enables
proper interpretation. Also, rename the responsible
judgment. Adjust and simplify xecuteWithParams() and
rename to executeCallable().
a small test for generic arguments
Merge branch 'declare-generics' into rework-generics

Closes #13.
fix hidden token handling in GenericArguments:

Hiding some tokens from the rule also allows them at the start and end,
so function calls could have e.g. spaces between function and brackets.
To prevent that is the whole point of the `Function` and `ProcRef` rules.
So instead of hiding them, allow them explicitly where needed.