Don't scrub the C stack from C.
* The C version of the stack scrubber was picking an address to
start scrubbing by taking the address of a variable in the current
stack frame and subtracting one, clearly dependent on the frame
layout supplied by the compiler.
* Fix, by rewriting the stack scrubber in assembly when
LISP_FEATURE_C_STACK_IS_CONTROL_STACK. This way, we know what the
stack frame layout is, and don't have to worry about red zones and
other such compiler-dependent noise.
* Lightly tested on linux/x86, linux/x86-64, darwin/x86, and
darwin/x86-64.