kernel - Rewrite the x86-64 pmap code
* Use unassociated VM pages (without a VM object) for all page table pages.
* Remove kptobj and pmap->pm_pteobj.
* For the moment implement a Red-Black tree for pv_entry_t manipulation.
Revamp the pindex to include all page table page levels, from terminal
pages to the PML4 page. The hierarchy is now arranged via the PV system.
* As before, the kernel page tables only use PV entries for terminal pages.
* Refactor the locking to allow blocking operations during deep scans.
Individual PV entries are now locked and critical PMAP operations do not
require the pmap->pm_token. This should greatly improve threaded
program performance.
* Fix kgdb on the live kernel (pmap_extract() was not handling short-cutted
page directory pages).