Added commented out lines to be implemented: SMEP checks
Added two new sections to the ELF binary for protected data. These sections
are 2MB page aligned, thereby pre-allocating minimally 2MB for NK internal
data, and 2MB for NK-write protected data.
Ported stub functions for writes to cr0 and cr4 to use nk_write functions if
NESTEDKERNEL is being built.
Added interface for writing to the MMU page table base pointer, i.e., cr3. The
interface uses a vmmu function as opposed to a cpufunc because it captures the
abstraction.

TODO: We still need to add the check on cr3 updates for valid declared top
level PTP page.
Added the new c files to the compilation configuration. The previous commit
requires this to function correctly, else the cr3 NK write function will not be
compiled in.
This file contains macros used to declare data on NK protected memory regions.
This has some simple debugging support for NK dev.
Added a large initial chunk of the MMU initialization function and the data
structures required for its successful working. The init function now only
declares and sets up initial NK page descriptors on the kernels PTPs.
Added call from pmap_bootstrap to initialize the nk vmmu.
Removed a direct call to nk_load_cr4 because this is handled in the cpufunc.h
function load_cr4.