Significantly improved JIT handling of return-by-value function calls.

The JIT now natively supports functions returning types in memory, as well as returning object handles.
Improved how the JIT stores temporary data to be much simpler and easier to work with, as well as faster overall.