Fixed bug in Instancer dirty propagation.

This had gone unnoticed before because the viewer would always do a full update when any plug was dirtied. Now that updates are done partially based on the specific dirty plugs, it is much more critical that SceneNode::affects() implementations are accurate. We'll need to be on the lookout for similar bugs as we adopt the new SceneView.
Added TypedObjectPlug::getValue() overload for when hash is known.

This avoids an unnecessary computation of the hash in the case that client code has already computed it for its own purposes. An example use pattern is documented in the TypedObjectPlug header.
Optimised SceneGadget for static geometry.

When the hash for the object is the same as before, we can entirely skip the process of computing the object in Gaffer and then reconverting it to GL. This avoids a lot of cache churn in the presence of unchanging objects - for instance when switching between nodes with identical hierarchies and objects, or when playing back an animation with a large number of static objects. Processing of 25 frames of the bunny test scene for GL display is approximately 6 times faster with this change.