[AArch64] Improvements to the AArch64 emitter.

Fixes issues with negative offsets in loadstore instructions.
Adds ADRP/ADR instructions.
Optimizes MOVI2R function to take advantage of ADRP on pointers, can change a 3 instruction operation down to one.
Adds GPR push/pop operations for ABI related things.
[AArch64] Removes ARMv8 as a generic target.

Generic flag disables the ability to have backpatching supporting.
Also compiles Dolphin with CRC instructions enabled.
[AArch64] Register cache improvements.
Adds the ability to flush the cache and maintain state.
Adds the BindToRegister ability.
Sorts register usage as callee saved used first, reduces dumping pressure when jumping to external routines/interpreter.
Adds a function to store a register, for use when flushing a register that won't be used during the rest of a block.
[ARM] Adds a ArmCommon folder.

Moves the backpatch flags and struct to a common location for ARM.
I'm sure there will be more things that use this common ARM location in the future.
[AArch64] Removes CODE_SIZE variable.

This is in a global location now which conflicts with this one.
[AArch64] Add an exception exit function with the exit location already in PC.
This will be used with idle skipping later.
[AArch64] Optimization in the dispatcher.

Align our dispatcher to a page so we can jump to it with a ADRP+BR pair instead of ADRP+ADD+BR.
Also make sure to save /all/ of our callee saved registers that we are supposed to save.
Requires PR #1705 prior to merging.
[AArch64] Flush registers from register cache if they won't be used again.

This requires PR #1705 and #1723 prior to merging.
[AArch64] Adds support for BindToRegister to the integer instructions.

This requires PR #1723 prior to merging.
[AArch64] Add partial support for cmp* instructions.

This support is as far as ARMv7's support for these instructions.
Requires PR #1728 prior to merging.
[ARMv7] Minor integer fastmem optimization.

This is a one instruction optimization for integer loadstores.
Makes sure to enable nop padding in some cases where a fault can still happen and cause us to overwrite other instructions that aren't meant to be.
Update Outdated Google Code References
Merge pull request #1705 from Sonicadvance1/AArch64_emitter_fixes

[AArch64] Improvements to the AArch64 emitter.
Merge pull request #1731 from Sonicadvance1/ARMv7-minor-optimization

[ARMv7] Minor integer fastmem optimization.
VideoLoader: remove VAT_*_FRACBITS

They are used to remove the flush amounts, but as we don't
flush anymore on vertex loader changes (only on native
vertex format right now), this optimization is now unneeded.

This will allow us to hard code the frac factors within the
vertex loaders.
VertexLoaderUid: remove operator<

Not needed for unordered map.
VideoCommon: Move NativeVertexFormat cache to VertexLoaderManager
VertexLoader: remove inlined getters

They just blow up the code.
VideoCommon: split VertexLoaderBase from VertexLoader
VertexLoader: Add a test loader which compares two vertex loaders