Have the shader generators generate modern GLSL if available.

This opens up to use other modern features like dual source alpha later.

Needs testing on various PC GPUs before merge. I test on nvidia which is notoriously accepting of invalid GLSL.