Make XS::APItest::establish_cleanup protect existing stacks

It causes pp_entersub to be called in odd places, which can cause the
context stack to be reallocated when an outer function call (like
pp_leavesub) has a pointer into the context stack in a C auto.

cleanup.t was failing for me under PERL_DEBUG_READONLY_COW +
STRESS_REALLOC + threads, because the context stack was reallocated
and the old address then freed and reused for something else, being
zeroed in the mean time.  So pp_leavesub returned NULL (trying to
read retop from the context stack), causing the program to exit.
During global destruction, subs that had not be exited properly were
undefined, leading to:

1..3
Can't undef active subroutine during global destruction.
threads.t: Increase watchdog timeout

PERL_DEBUG_READONLY_COW is too slow for a 60s timeout.
Use sTHX
safesyscalloc must support rocow

We cannot just delegate to safesysmalloc, as PERL_POISON will
poison the buffer newly zeroed by mmap.
fixups
More poison fixups
util.c: A couple of defines to simplify #ifdef maze

No real simplification in terms of the number of #ifdefs, but more
readability (hopefully).
uniprops.t fixup
fixups for non-threaded buidls