test: self: add deeper_fork

The dial-a-forkbomb test. Currently it can only run with depth=5 because the
microkernel runs out of kernel memory with larger numbers, but that should
change.

A variant could be written that tests fork_tid() in this process, but it won't
terminate because of IPC sender/receiver crossing. The problem is that
fork_tid() is written in terms of fork() and not the other way around.
x86: fix x86_invalidate_page()

It now adds the kernel segment's offset to `address' before doing invlpg on
it. This appears not to break anything, unlike removing the flush outright, so
in it goes.
remove TLB flushes from put_supervisor_page() call sites

These ones haven't been necessary for a while now.
space: do lazy page invalidation in space_put_page()

Removes a TODO.
exception: call free_heap_page() in handle_kdb_enter()

The affected code isn't being tested automagically because the function would
be interactive, and in the absence of a Pistachio-style in-kernel debugger
there's no use for it anyway. So this changeset doesn't necessarily do
anything useful.