Force flexible allocations that can start at 0, to start at 1MB.

Machine-independent loader code, such as the multiboot code, often
requests allocations that can fit anywhere between 0 and end-of-memory.
On a PC-architecture system, the 0-640K region should really be
considered a no-go area due to assumptions made about the contents
of that region e.g. BIOS data area values.

To avoid having these requests be satisfied in this area, bump up the
start address to 1MB if the allocation size/end constraints would still
be satisfied.

This fix prevents some multiboot guests from reading incorrect values
from this area, and will allow the area to be populated correctly
by bhyve.