Turn crit_inside into CRIT_DEPTH and crit_assert() into CRIT_ASSERT().
Convert mutexes to respect IPL_CRIT
Turn splassert <= IPL_CRIT > IPL_NONE into CRIT_ASSERT();

Now splassert() needs proc.h.
Imply critical sections on syscalls.

This way we don't need to change every spl call.
The strategy is:
	- Make system calls imply critical sections.
	- Make ithread imply critical sections.
	- Turn splwhatever() into CRIT_ASSERT().
Make ithreads imply critical sections.
Preparation for removing IPL_BIO.
splbio() -> crit_enter, the big bulk.

Left alone in one commit to easily revert, softdeps were not touched
since they're more complex.
splassert(IPL_BIO) -> CRIT_ASSERT, softdeps untouched.
Work around for splassert on pools.
Make the tree compile again, minor fixes for IPL_BIO removal. Break
softdep.

Softdeps locking is too complex to be addressed now, so leave it
broken and make it compile, display a message about breakage.
Small whoops.
Embarassing mutex_enter_try() bug.

We need to keep the critical section, not leave on enter, and only
leave on mtx_leave().
Have a critical section for the whole main() function.

This is easier than finegraining stuff.