check for no division by zero literals
fix assignability check for assignments, too (see 5365bbdcb)
interpret division using rational numbers
auto-import stdlib
check for uniqueness of function and proc names
allow using generic mathematical types
adjust typing system to generic mathematical types

Also, always check for param types in function calls,
not only when there is a generic return type.
subtyping: integers can be interpreted as any kind of number (including generics)
var declarations must be typed
validate generic return types and var declarations