[AArch64-emitter] Initial work on a emitter for 64bit ARM.
I've tested a few instruction encodings and am expecting most to work as long as one stays away from VFP/SIMD.
This implements mostly instructions to bring up an initial JIT with integer support.
This can be improved to allow ease of use functions in the future, dealing with the raw imms/immr encodings is probably the worst thing ever.
Beginning of the AArch64 JIT branch.
This is the bare minimum required to run a few games on AArch64.
Was able to run starfield and Animal Crossing to the Nintendo logo.
QEmu emulation is literally the slowest thing in the world, it maxes out at around 12mhz on my Core i7-4930MX.
Add immediate support to the GPR cache.
Add AArch64 target to the backpatch header.
This fixes the issue of a million warnings spawning from this header.
Add a couple of asserts to the Arm64 JIT to make sure we can load everything.
for tw/twi instructions, force propagated constant into a register to avoid "a1 cannot be immediate" errors from the emitter
Fix twi/tw instructions being switched in Jit64 and JitArm; downgrade the ERROR_LOG printed when tw is ran in the interpreter to DEBUG
Fix building ARMv7 on the 64bit Android NDK.

Google has gotten their act together and fixes a few of the signal handling headers.
Change over to a header that works on both r10 32bit and r10 64bit.
32bit has the old "broken" headers as in some didn't even exist.
64bit has the "fixed" headers that one would expect on any regular unix system.
JIT: fix a corner case in crXXX

It didn't behave correctly with an input of zero, resulting in some games
breaking (at the least, Fight Night 2). This should be fixed now.

Also clean it up, add a few comments, and fix some variants of the instruction
that are so rare that they probably never got tested.
InputCommon: Remove unnecessary breaks in XInput's GetName function
Common: Remove unused variable in MemoryMap_Setup
Merge pull request #897 from Sonicadvance1/AArch64-jit

Initial AArch64 JIT
Rename Log2 and add IsPow2 to MathUtils for future use

Also remove unused pow2/pow2f functions.
JIT64: optimize multiplication by immediate constants

Factor out common code and handle a few more common cases.
JIT64: optimize rlwinmx/rlwinix and friends

Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
JIT64: Optimize cmpXX

Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
JIT64: optimize sign-extend

Remove some code duplication.

Also remove some comments that no longer apply since x86_32 was dropped.
JIT64: avoid using LEA for adds when not necessary
JIT64: use LEA for the "a = b + imm" case of addi
JIT64: tweak srwx/slwx BindToRegister arguments

Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.