MM0 TODO List:

1.) Bootmem needs to be freed.
2.) Virtual memory regions available as capabilities need to be dynamically
    allocated to various purposes, i.e. task region, shared memory region,
    utcb region, etc. by traversing each region and matching to purposes.
3.) virt_to_phys()/phys_to_virt() uses the fixed offset of INITTASK_OFFSET, this
    either needs to be discovered at run-time or specified at config-time.
4.) pager_new_address()/pager_delete_address() needs to use a region inside
    pager start/end regions, and virt_to_phys()/phys_to_virt() should not clash
    with those regions.
5.) read_file_pages()/write_file_pages() needs to be tested and improved in
    terms of syscalls to microkernel.

(1,3,4) Done.
