DiscIO: Move VolumeDirectory off of raw pointers
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.
glx: fix shutdown hang
Re-enable the vertex loader JIT on OS X.

Why was it ever disabled?
Merge pull request #895 from comex/reenable-jit-on-os-x

Re-enable the vertex loader JIT on OS X.
Merge pull request #877 from lioncash/voldir

DiscIO: Move VolumeDirectory off of raw pointers
Merge pull request #890 from degasus/glx

glx: fix shutdown hang
Clear the texture used by PP shaders prior to use.
We were generating a texture without ever setting the data to a known value.
This happened on the old code as well, just that PP shaders are receiving some love and people are using it and noticing some of its issues.
Merge pull request #882 from Sonicadvance1/fix-pp-blackness

Fix PostProcessing shader garbage on screen.
Jit64: some load/store optimizations

Avoid extra ops during address calculation in loads; use LEAs or immediates
whenever possible.
Merge pull request #758 from FioraAeterna/loadstoreopt

Jit64: some load/store optimizations
Merge pull request #843 from FioraAeterna/fprf

JIT: Initial FPRF support
x64Emitter: add BMI1/BMI2 support

TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.