MFC: Sync up with HEAD in some of the locking primitive details:
- Teach WITNESS_SAVE() and WITNESS_RESTORE() to work with spin locks instead
of only sleep locks.
- Do the extra step required when destroying a locked spin mutex.
- Initialize thread0.td_contested in init_turnstiles() rather than
mutex_init().
- Add LOCK_CLASS() macro and sync with HEAD on its usage. For RELENG_6
this just maps to lock->lo_class. (In HEAD lo_class was removed an array
index was encoded into lo_flags instead.)
- Add subr_lock.c including adding lock_init() and lock_destroy() functions
as we as moving the 'show lock' command into this file from kern_mutex.c.