Execute magic callbacks into separate stacks
When magic triggered, stack corruption could occur since the magic callback
arguments were passed on the same stack as the ambient one. This issue has
long gone unnoticed because most ops first unpack their stack arguments
before processing magic, but also because this module is mostly used in
practice to capture magic outside of the usual program op structure were
the argument stack is relevant.
This was made visible with core change
6442877a (publicized in perl 5.22.0)
which caused get magic on transliterations to happen on the same C argument
list as a PUSHmortal. This resulted in an undefined behaviour which was
usually resolved by the magic being processed first (for example by gcc),
but cl.exe on win32 prefers to execute the PUSHmortal first, hence the
stack was corrupted.
This fixes RT #107294.