Simplify code, some whitespace cleanup
Introduce crit_rundeferred(), remove ci_req and make Xfakeclock smaller.

The idea is that crit_rundeferred() gets run everytime we want to
flush whatever was deferred due to critical sections. By now the only
place we want this is on the transition from crit 1->0, but we might
also decide to do this everytime we hit a point where we might have
relinquished the processor, be it acquiring a token or going to
sleep/mi_switching.

It's still half baked since I need to get IPL_HIGH and IPL_IPI out of
the way.

I also want to move most of the code out of assembly, for portability
and maintainence reasons, also cause I suck in asm. I doubt very much
that the splx on asm gives a great gain, these are micro optimizations
that might have made sense in the 90s, this is a guess, needs to be
tested. In order to move stuff out of asm I had to port flsq and brsq
from freebsd, they're the 64bit variant of the 32bit they have.