gencgc: bogus memory fault handling
Add more debugging information when a bogus memory fault occurs,
and two control variables:
continue_after_memoryfault_on_unprotected_page
ignore_memoryfaults_on_unprotected_pages
The first just prevents us from lose()ing. Set it in darwin_init() as we
genuinely appear to get bogus memory faults in threaded code from the kernel,
which point to unprotected boxed pages. They are possibly something we could
filter out in catch_exception_raise... but don't see how. Experimentally
continuing after such them seems harmless, so let's try that but make it
noisy.
The second one silences the debugging output completely. Not set currently at
all.