If the kernel generates a deadly trap signal (SEGV, BUS, etc) for
an untraced process but finds it blocking or ignoring it, just kill
the process instead of looping.  It's undefined behavor in POSIX but
quite annoying when encountered in practice.

improvements from kettenis@
ok matthew@
Make sure kmthread never loops without making progress: if the freelist
was empty then the first page allocation should sleep until it can get one.

ok tedu@
Reduce the verbosity of error messages caused by open(2) failures.
Suggested by and ok jmc@.