add TypeInfo to GC calls

This is a small but inevitable step for precise scanning of GC managed objects.
It currently only passes TypeInfo for newed class and struct objects to the GC, ignoring it within the GC.

More changes are needed for dynamic and associative arrays.

If we are changing the GC API anyway, how about using an interface instead of the proxy object? That would remove a null-check and a lot of confusion.