The physical memory manager - this consumes a MemoryRegions map, and uses it to initialise an
instrusive free list of all usable physical memory. This can then be used to allocate physical memory
as needed, at frame granularity.
The region map provides a high-level view of the physical memory space, containing large regions of memory that
are either usable, or reserved for one of a variety of reasons. This information is static: we don’t allocate
out of the regions directly - a physical memory allocator is provided by MemoryManager.