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.