hwregion start/end should be rounded up and down as appropriate to
only account for pages that are wholly usable. Conversely, exregions
that cover partial pages should in-fact cover the whole page.
While here, choose amore widely available definition of MAX_PHYS_ADDR.
ARM defines it as just below kernbase, which isn't quite what we want,
but the value that we do want isn't available early enough to be usable.
Other architectures define it either as the previous definition did, or
they define it as the highest address that can be indexed.