Kill off some usages of c_str.

Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
MemoryInterface: properly register region MMIOs.
OGL: Remove some dead code.
OGL: Force highp for integers.
PixelShaderGen: Make SampleTexture static inline.
Provide our own dot functions in GLSL since GLSL doesn't provide integer versions of this function, even though AMD and Nvidia provide their own.
PixelShaderGen: Use integer math for alpha testing.
PixelShaderGen: Fix an issue where small negative z coordinates would underflow when they shouldn't.
PixelShaderGen: Use integer math for sampling textures.
PixelShaderGen: Use integer math for indirect texture coords.
PixelShaderGen: Use integer math for rasterizer color.
PixelShaderGen: Remove remaining floating point bits for texture color.
PixelShaderGen: Use integer math for tev konst value.
PixelShaderGen: Use integer math for tev outputs.
PixelShaderGen: Use integer math for TEV combiners.
PixelShaderGen: Remove superfluous registerstate stuff. Also, made alphabump an integer.
PixelShaderGen: prev should be initialized to the proper value; tev output needs to be clamped between -1024 and 1023.
PixelShaderGen: Use integer math for indirect tev stage texcoord calculation.
PixelShaderGen: Write constants in decimal instead of hexadecimal where appropriate.
PixelShaderGen: Process fog calculations with integer math.