Refactor get_memory_layout so that it is accessible during partial init

Currently get_memory_layout is tied into the full init process. This refactor makes it accessible during partial init using the vmi_get_page_mode accessor.