Add a sysctl and tunable kern.trap_mpsafe which allows some traps to run
without having to hold the MP lock. The more sophisticated traps, such as
a VM fault, will still obtain the MP lock. The sysctl is disabled (0)
by default.
The main thing effected by turning this on is T_ASTFLT, which is used to
switch away from a user process to either a kernel thread (non preemptively)
or another user process. When enabled, switching from a user process to
a kernel thread and back again will not require the MP lock. However, the
real benefit will not be realized until more kernel threads run without the
MP lock.