Responding to review comments.  See <https://info.ravenbrook.com/mail/2014/02/12/11-30-00/0/>.
Clarifying how the beginning of the page table gets unmapped.
Abstracting partially mapped page tables into a SparseArray abstract datatype, removing a great deal of complexity from the VM arena, and some unnecessary double-initialisation and scanning loops during allocation.
Catch-up merge from master, mainly to pick up gcbench.