Add default parameters to function types

This only adds default parameters to the type system. Currently, calling
a function with default parameters will cause crashes and broken
bitcode.

So far, it is impossible to create a function with default parameters,
since they cannot be used on methods/constructors yet.
It is also currently impossible to give values to default parameters at
call time, since even parsing for default arguments has not yet been
implemented.