move shared parts from VertexManager::vFlush into VideoCommon
fix ogl video config crash

This will happen when playing on any other backend than ogl which have a non-trival GLInterface::GetMode() method.
rename UpdateViewport to SetViewport like all others setters in RenderBase.h
move perfquery enable checks into videocommon (caller side)
use EFBRectangle for scissor rect

This one is backend independed. The backend should recalc such things on their own.
merge some common parts of Swap() into VideoCommon
inline SetViewport into VertexShaderManager
Silence some Windows compiler warnings

by adding explicit type casts.
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 (and move the IOB handling to IPC).
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.