First steps of making the pixel shader uid struct more compact.
Fix stuff
PixelShaderGen: Move RegisterStates from global storage to stack.
PixelShaderGen: Change a comment slightly.
Merge 'master' into shader-uids-awesome.

Conflicts:
	Source/Core/VideoCommon/Src/LightingShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.cpp
	Source/Core/VideoCommon/Src/PixelShaderGen.h
	Source/Core/VideoCommon/Src/VertexShaderGen.cpp
Fix some merge conflicts.
PixelShaderGen: Fix various merge conflicts and a critical regression from revision 32b78a85.
PixelShaderGen: Fixed some bugs, removed unused shader uid fields.
PixelShaderGen: Fix more critical issues, some of which are regressions of revision 32b78a85.
PixelShaderGen: Add some TODOs.

Totally the perfect commit message for a final commit before merging :p
Merge branch 'shader-uids-awesome'.

Replaces the old, hardcoded shader ID generator with a semi-automatic mechanism that generates IDs from hints in the code generator.

Also introduces a flexible framework to do all kinds of funky stuff with the shader code generation logic. As an example, a uniform usage profile generation class is added (unused for now, though).

Functionality can still be tested by setting the EnableShaderDebugging field in the gfx config to True. Any two shaders which are identified with the same ID will be written to a file and an error message will be written to the Dolphin log.
don't define clipPos twice

fix issue 6378
buffer fixes found via cppcheck/tetsuo--
[Android] Gamepad input. Refactor JNI native functions to all pull from a single class instead of everywhere willy-nilly
Partial revert of 0247b2a97a1d. I'll add a work around for Qualcomm in a bit. Qualcomm shader compiler failing was only due to floating suffixes not whole function defines. Qualcomm video driver devs seem to have a good response time when it comes to OpenGL ES 3 issues.
Fix a free that should have been a delete.
Fix a char buffer destination size in Render.cpp for VideoDX11.
Whoops, look like the previous commit was also the case with VideoDX9
[Android] Qualcomm glGetShaderInfoLog returns a max of 1024 bytes(tested) for the log, and glGetShaderiv with GL_INFO_LOG_LENGTH /always/ returns 0 on compile failure.
BPMemory: Assign a more descriptive name to a field in the genmode register.