Support arbitrary amounts of RAM.

Earlier we were limited to the amount of RAM and dmap that the initial
boot-time kva provided to us by the hypervisor.

This change allows us to allocate our own kva until we have enough for
our boot time mapping needs (boot kva and the direct map).
This is achieved by iteratively estimating and re-building boot time
page tables until we have enough mappings.

Some niggles remain, including free-ing/unmapping physical pages of
discarded bootstrap page tables.

Approved by:	gibbs (implicit)