Pass through optimisations

This implements the pass-though optimisations I was discussing on [David's previous pull request](https://github.com/ImageEngine/gaffer/pull/1013). They give a 2x speedup in scene traversal for his production test case. Pleasingly this also makes it easier to implement a SceneNode, and removes more lines of code than it adds.