Starting point for the new MMIO interface

Design doc:
    https://docs.google.com/document/d/11qcGCWLne1wYvmtFaSrOKZt_vHxXrcWcZsdWJ-MJnyo/edit

The code is currently not used. Migration plan:
    1. Implement MMIO access via MMIO::Mapping in parallel to the current
       method.
    2. Implement all existing MMIO handlers via the new interface.
    3. Remove the old hwRead/hwReadWii/hwReadIOBridge code.
    4. Implement JIT optimizations for MMIO accesses.
MMIO: Port the PI MMIOs to the new interface.
MMIO: Port the VI MMIOs to the new interface.
MMIO: Port the MI MMIOs to the new interface (and rework that module extensively).
MMIO: Port the DSP/ARAM/AI MMIOs to the new interface.
MMIO: Port the DI MMIOs to the new interface.
MMIO: Port the SI MMIOs to the new interface.
MMIO: Port the AI MMIOs to the new interface.
MMIO: Port the IPC MMIOs to the new interface.
MMIO: Port the EXI MMIOs to the new interface.
MMIO: Port the VideoCommon CP MMIOs to the new interface (and provide framework for other video related mappings).
MMIO: Port the VideoCommon PE MMIOs to the new interface.
MMIO: Port the SW CP/PE MMIOs to the new interface.

Migration is now complete.
Remove the old MMIO access "interface".
Use a pointer instead of a non-const ref in MMIO::Mapping::Read now that compatibility with the old interface is not required anymore.