Small whoops.
Move critical sections into real functions until we're sure the
compiler can't reorder inlined functions. Also makes it possible to
call from asm stubs.
Kill IPL_IPI and replace it with critical sections, still pretty
rough.

For simplicity sake, for now we're not even setting the pending bit,
we always process ipis when we exit a critical section.
Check for ci_ipis before calling x86_ipi_handler
Finish removing all the softint related code, keep only the IPL_ defines for now.

This probably broke usb, there is no way to go forward without
breaking some stuff =(.
Fix the wakeup on SRUN race.

Stop trying to be smart, we're not ready for it, the problem is that
unsleep needs the lock since it touches the global sleep queue, let us
make this fast when it is time, not before.