This patch continue the efforts to split the gpu_shader_material file
started in D5569.
Dependency resolution has been refactored to be recursive, so it is
sufficient to add the direct dependencies only. Each shading node
gets its own file. Additionally, some utility files are added to be
shared between files, like math_util, color_util, and hash.
Some files are always included because they are used in the execution
function, like world_normals.
Some glsl functions appears to be unused, so they were removed, like
output_node, bits_to_01, and exp_blender. Other functions have
been renamed to be more general and get used as utils, like texco_norm
which became vector_normalize.
A lot of the opengl tests fails, but those same tests also fail in
master, so this is probably unrelated to this patch.