x86: don't unmap the 4 MB page at 0 - 4 MB after initial init, and don't clone 4 MB pages in VirtualAddressSpace::clone().

This resolves entering the debugger when the system is out of memory, as
the switch back into a text mode requires x86emu, which requires the first
MB of RAM to be identity mapped. We can't map it because we don't have any
memory to allocate the page table with. Ouch.

Alternative fix: preallocate page table for the first 1 MB, remove the big
4 MB page mapping.
utilities: Tree::erase now does not return a new iterator. Avoid leaking an IteratorNode in some circumstances.
utilities: Cache now removes from the Tree as well as deleting the CachePage.