fix: function call routing — input trampolines use INHERIT, assign act_ids to function body nodes
Two root causes for the last 3 test failures:
1. Input trampoline edges incorrectly used ctx_override=True, which caused
CHANGE_TAG mode. CHANGE_TAG unpacks the left operand as a packed FrameDest,
but input trampolines receive raw data values — not FrameDests. Changed
input edges to use normal routing (INHERIT mode reads dest from frame slot,
which already encodes the function's act_id).
2. Function body nodes (e.g. $adder.&a, $adder.&sum) got act_id=0 (root
scope) instead of the call site's act_id. When a function has call sites,
its body nodes must share the call site's activation context so FrameDest
routing targets the correct frame.
Also fixed test_builtins.py and test_variadic.py to inject setup_tokens
before seed_tokens (matching test_e2e.py's pattern).