Refactor glsl-unit templates

This abuses the template system to allow both a single anonymous shader
and multiple named shaders to be defined in a namespace.
Automatically generate uniform and attribute locations
Use automatically generated locations in WebGL tile layer renderer
Use simpler, faster shader when brightness, contrast, hue and saturation are unchanged
Remove unused constants
Merge pull request #506 from twpayne/refactor-webgl-shaders

Refactor WebGL shaders