Introduce MI in_intr()/assert_{in,not}_intr(). Kill splassert().

in_intr() tells you if you are in an interrupt.

This turns splassert(IPL_NONE)->assert_not_in_intr().

This removes the remaining splassert() calls, also killing the
unintuitive IPL_NONE semantics for it, every path that used to
splassert(IPL_NONE) wanted to know it is not in an interrupt handler,
I've tightning this restriction in some places by replacing it to
assertwaitok(), which also makes sure you're not holding mutexes.

Had to rename the umidi's in_intr().
We don't need IPL_CRIT anymore.

All levels were converted already.