vm_page_free_prep(): convert PG_ZERO zeroed page check to use sf_buf
Make the check MI by allocating sf_buf in non-blockable manner. For
DMAP arches, this should be nop since sf_buf allocation cannot fail.
For non-DMAP arches, we get the checks activated unless there is serious
sf_buf pressure, which typically should be not.
The context for vm_page_free_prep() should be ready to block on some VM
mutexes, which should make it reasonable to block on sf_buf list lock.
Move the code to INVARIANTS build, and control it with the sysctl
debug.vm_check_pg_zero.
vm_fault: under INVARIANTS, add the verifier that PG_ZERO page is indeed zeroed
vm_fault: under DIAGNOSTIC, verify that PG_ZERO page is indeed Controlled by the same sysctl debug.vm_check_pg_zeroed.