Fixed disabled Shader pass-through bug.

We were overwriting the handle of the shader every time we accessed it, and the handle was being based on the node passed to shaderHandle(). We now never overwrite a handle once it has been generated, and also base the handle on the shader itself rather than the node it was computed for. When we do #335, we'll now be able to extract a useful label from the shader to use as part of the handle.
Fixed bug evaluating serial disabled shaders.

Shader::effectiveNode() was only skipping over a single disabled node, never thinking that the next shader in line might also be disabled. It now keeps going until it finds an enabled node.
Merge pull request #468 from johnhaddon/shaderDisablingBugs

Shader disabling bugs