Restore conditional that makes mediump declaration only apply to fragment shaders
This was erroneously removed to make the Lanczos3 shader link properly, but it resulted in vertex shaders incorrectly defaulting to mediump
Add highp precision declaration to Lanczos3 fragment shader so that it can link
Along with setting a version for macOS to use instead of 2.1,
most if not all Essentials games require a maximum texture size
of at least 16384x16384. OpenGL 4.1 requires this as a minimum.
Don't globally set float precision to mediump, only fragment
shaders need that and defining it for vertex shaders causes
tilemap cracks.
Also manually define low precision for variables that hold
color / alpha values.