Use IPENDING_NEXT() now that IPL_IPI is gone.
Panic if we select idle before having it forked.

I suspect this was never hit before, judging by the way idle threads
are forked, if so we should fix it, not work around.
Revert "Boot requires a critical section now."

This reverts commit d085283e0c75725142c76cf5f8b454629f9b2998.

Whatever reason I had for this back then it was probably due to
something stupid.
Introduce crit_leave_all()/crit_reenter() to do the dance where we
know/want to be preempted.

Turn the mi_switch() code to make use of it.
Remove splraise() and spl0().

Replaced some calls with crit_leave_all() which runs deferred
processing.

Remove the spl0() call in autoconf as we don't want interrupts that
early.

At that point not even ithreads were forked, in amd64 that is actually
a lie, since interrupts will only be enabled very late on the ioapic
via setredir().