Replace the global VM page hash table with a per-VM-object RB tree. No
performance degradation was observed (probably due to locality of reference
in the RB tree improving cache characteristics for searches). This also
significantly reduces the kernel memory footprint (no global VM page hash
table) and reduces the size of the vm_page structure. Future MP work
should benefit from this change.
Prior work in the VM tree guarenteed that VM pages only existed in the hash
table while also associated with a VM object, this commit uses that guarentee
to make the VM page lookup structures VM-object-centric.