Port tracecall
port desiredata's tracecall class
This change either depends on or is related to a change of checking for a stack overflow at the inlet rather than the outlet. That is also a feature of desiredata that is being ported in this merge.
Also notice that the tracecall internals may also be used to add stack tracing to error messages if we want to go that route. (We'd need to protect against edge-cases like sporadic dynamic patching but that should be possible.)
One of the side-effects of this change is that the stack-overflow protection works even in cases where messsages aren't flowing to an outlet. Currently, you can easily generate infinite loops using send/receive pairs, iemgui send/receive symbols and probably with message boxes, too.
So to merge we want:
- some basic tests for tracecall class
- basic tests to ensure stack-overflow protection for loops that don't cross an outlet