To work properly with some hypervisors on various architectures (ARM, ARM64, x86), add global routines to allow access to MMIO registers via architecturally defined accessors. Add accessors for ARM, ARM64, and x86-32/64. Have the other arches default to just using whatever the compiler emits. Will need to generally move things off the legacy REG*() accessors since they're really not safe going forward with what compilers emit.