Documented the possibility of making pass-through connections in SceneNode.

Also made the hash*() and compute*() methods non-virtual, so that they needn't be implemented in the cases where a pass-through connection is made. The default implementation for the compute*() methods raises an exception to alert developers to the necessity of doing one or the other.
Destroyed friendship between ValuePlug and Computation.

They never really liked each other anyway.
Added test case for NumericPlug float->int->float connections.
Optimised computation propagation through chains of connections.

It's much quicker to simply traverse to the start of the chain and compute there than it is to compute at each stage.
Added direct pass-throughs in SceneElementProcessor classes.

This gives an approximately 2x speedup for a full traversal of a production test scene.
Added direct pass-throughs to GlobalsProcessor nodes.
Added direct pass-throughs to Isolate and Prune nodes.
Added direct pass-throughs to FreezeTransform node.
Added direct pass-throughs to OSLObject node.
Added direct pass-throughs to Constraint nodes.
Merge pull request #1022 from johnhaddon/passThroughOptimisation

Pass through optimisations