proc_switch now returns success/fail value.
Changed lock to a struct and moved lock functions into own obkject file.
Implemented recursive locking and renamed take_lock for clairty.
Added non-exclusive option to hold_lock construct.
Improved use of locking in process code. Including recursive locking where appropriate.
Updated test code to be compatible with new locks.
Changed error message on incorrect include.