JIT64: clean up and unify float load/store code

While we're at it, support a bunch of float load/store variants that weren't
implemented in the JIT. Might not have a big speed impact on typical games but
they're used at least a bit in povray and luabench.

694 -> 644 seconds on povray.
JIT64: add mulhwx implementation
JIT: Initial FPRF support

Doesn't support all the FPSCR flags, just the FPRF ones.
Add PPCAnalyzer support to remove unnecessary FPRF calculations.

POV-ray benchmark with enableFPRF forced on for an extreme comparison:
Before: 1500s
After, fmul/fmadd only: 728s
After, all float: 753s

In real games that use FPRF, like F-Zero GX, FPRF previously cost a few percent
of total runtime.

Since FPRF is so much faster now, if enableFPRF is set, just do it for every
float instruction, not just fmul/fmadd like before. I don't know if this will
fix any games, but there's little good reason not to.
Change default netplay buffer to 5.
x64Emitter: add support for some missing CVT instructions
Merge pull request #843 from FioraAeterna/fprf

JIT: Initial FPRF support
Merge pull request #894 from FioraAeterna/missingcvt

x64Emitter: add support for some missing CVT instructions
JIT: make fprf conditional in fcmp, just like the other instructions

Missed in the FPRF merge (it didn't break anything, but it's probably a bit
slower and not consistent with the others).
Merge pull request #881 from FioraAeterna/mulhwx

JIT64: add mulhwx implementation
Merge pull request #898 from FioraAeterna/fprffix

JIT: make fprf conditional in fcmp, just like the other instructions
Merge pull request #876 from FioraAeterna/floatloadstore

JIT64: clean up and unify float load/store code
JIT64: add frspx implementation
Merge pull request #879 from FioraAeterna/frspx

JIT64: add frspx implementation
PointerWrap currently checks its mode for every individual byte of everything it 'does', including all of RAM.  Make it not do that.

Decreases total Wii state save time (not counting compression) from
~570ms to ~18ms.

The compiler can't remove this check because of potential aliasing; this
might be fixable (e.g. by making mode const), but there is no reason to
have the code work in such a braindead way in the first place.

- DoVoid now uses memcpy.
- DoArray now uses DoVoid on the whole rather than Doing each element
(would fail for an array of STL structures, but we don't have any of
those).
- Do also now uses DoVoid.  (In the previous version, it replicated
DoVoid's code in order to ensure each type gets its own implementation,
which for small types then becomes a simple load/store in any modern
compiler.  Now DoVoid is __forceinline, which addresses that issue and
shouldn't make a big difference otherwise - perhaps a few extra copies
of the code inlined into DoArray or whatever.)
JIT: fix RAM check in load-from-constant-address

A bug that seems to have been uncovered by allowing immediate-address loads.
Super Monkey Ball 2 crashes without this change -- it's possible, however, that
the game actually requires the MMU hack, since it crashed due to accessing an
address in the 0x20000000-0x3fffffff range.
Merge pull request #892 from comex/oh-the-abstraction

Optimize PointerWrap.
Update build.gradle to newer buildtools.

Newer android studio versions now mandate at least build tools 20.0.0 and gradle 0.12+
So update the gradle file for this.
Merge pull request #900 from Sonicadvance1/update-gradle

Update build.gradle to newer buildtools.
Update shown CPU cores in the Android UI.

Only show the JIT cores on x86_64(Will have its own issues once we reach that point)
Show AArch64 JIT if running on a AArch64 device(Good luck with that for now. Future proofing though)
Merge pull request #902 from Sonicadvance1/android-64bit-support

Update shown CPU cores in the Android UI.