add support for global GLSL #defines that apply to all programs
specific programs can override global properties by re-defining them
fix GLSL #define injections for non-boolean values (was wrapping values in parens, which is not allowed)
in shaders, move tile_scale from a uniform to a compile-time #define