Add void RTTI (as required for function returns)
Make function immutability cast-away-able

This makes function immutability a property of the value, not of the
reference. So it will be possible to cast an immutable function value
which was stored as not-immutable (or as an object) back into an
immutable function value.

Eventually, a run-time exception will be thrown when someone tries to
cast a not-immutable value to immutable.
Add the 'instanceof' operator

This operator checks through the RTTI for a given object to find out
whether or not it is of a specified type.

One important thing to note is that it does not check inside tuples, or
check super-type relationships for primitive types, etc. It just checks
the outermost type, and for checks super-type relationships for objects.

For example, if Bar extends Foo, the following would print false:
object o = 5, new Bar();
stdout::println((o instanceof (ubyte, Foo)).toString());
Because although 'new Bar()' is a Foo as well as a Bar, '5, new Bar()'
is a (ubyte, Bar), which is not an instance of (ubyte, Foo).