Add an opencrypto provider for the AES xcrypt instructions found on VIA
C5P and later cores (also known as 'ACE', which is part of the VIA PadLock
security engine). Ported from OpenBSD.

Reviewed on tech-crypto and port-i386, no objections to commiting this.
Make disconnect/reselect work on news68k si(4) with DMA and
enable it by default.
Add an implementation for krwlock_t.  Initialize ci_mtx_count to 1 (biased).
Fix a few buglets in the kmutex_t implementation.
Clean this code up some.

Extract subroutine rn_delete1() to ease RADIX_MPATH integration,
should we ever do that.

Remove RN_DEBUG code that does not compile.

Join some lines of the type

        type var1;
        type var2;
        type var3;

making

        type var1, var2, var3.

Break lines of the type if (expr) stmt1; else stmt2; so that normal
people can read them.
- separate context switching and thread scheduling.
- introduce idle lwp.
- change some related MD/MI interfaces and implement i386 version.
while switching, hold "switched from" lwp's l_mutex rather than sched_mutex.
mi_switch: reduce the number of microtime calls.
remove a stale forward decl.
remove the now unused definition of RQMASK.  from Daniel Sieger.
if available, use monitor/mwait rather than cli/sti/hlt.
fix a comment.
update a comment.
remove unused lwp_exit2.
update a comment.
sched_switch_unlock: fix a typo which causes lockdebug panic.
General Common Scheduler Framework (CSF) patch import. Huge thanks for
Daniel Sieger <dsieger at TechFak.Uni-Bielefeld de> for this work.

Short abstract: Split the dispatcher from the scheduler in order to
make the scheduler more modular. Introduce initial API for other
schedulers' implementations.

Discussed in tech-kern@
OK: yamt@, ad@

Note: further work will go soon.
define SCHED_4BSD in conf/std for now.
remove some unnecessary #include.
whitespace.
update comments and panic messages.