make malloc(9) mpsafe by using a mutex instead of splvm.
this is almost a straightforward change of spl ops with mutex ops,
except the accounting has been shuffled around. memory is counted
as used before an attempt to allocate it from uvm is made to prevent
overcommitting memory. this is modelled on how pools limit allocations.
the uvm bits have been eyeballed by kettenis@ who says they should be safe.
visa@ found some nits which have been fixed.
tested by chris@ and amit kulkarni
ok kettenis@ visa@ mpi@