kernel -- vm_object locking Part 1: Primitives
* Create per-vm_object 'hold count'; the hold count ensures that a
vm_object is not deallocated or collapsed till it transitions 1->0.
Hold count is waited for in vm_object_terminate and _collapse.
* Convert vm_object_lock/_unlock to use pool tokens; pool tokens do not
share storage with the vm_object, simplifying lifetime.
Cleanups:
* Remove first attempts at vm_object locking; it just wasn't clear
what each token was protecting earlier.
* Eliminate vestigial fields from vm_object structure.
* Clean vm_object_pip_wakeup (just call _wakeupn)
* Remove vm_page_(un)lock for now
Discussed-with: dillon@