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)
Add all pv ram to the crash dump pages, instead of skipping "holes".
This also fixes fragmentation related breakage during bootup, which
fails during the RAM "device" attach.

Approved by:	gibbs (implicit)
dump_avail[] offset correction. This was incorrectly offset by 1 in
the previous commit.

Approved by:	gibbs(implicit)
Flag on stack frame that segment registers have been saved.

This now completes FreeBSD/Xen pv bringup for UP.

Next steps (open list):
- Optimise current call paths.
  (exception.S, amortise across multiple hypercalls etc.)
- SMP
- vet exception.S (and others) for security.
- Bring codebase as close to native as possible, and merge
  as much code as possible with native and pvhvm.
- Merge to -current

Approved by:	gibbs(implicit)