Fixed SceneReader hashing, and made childNames hash constant.

The SceneReader::hash() method was lazily hashing in time for everything, regardless of whether it was even related to outPlug(). It now correctly implements the hash*() methods instead, but omits hashChildNames() because the hierarchy provided by SceneInterfaces is static over time. This shaves approximately 6% off the time to traverse 20 frames of an animated scene.
Added ValuePlug.cacheMemoryUsage() static method.
Optimised SceneReader by detecting non-animating properties.

This knocks about 30% off of the time to traverse a 20 frame test animation with a mixture of deforming and static geometry. It also reduces cache memory usage by some 60%. There is a small time overhead for single frame display, but that will be addressed in a future commit.
Optimised SceneReader::scene() for repeated access to the same scene.

This knocks 8% off the time taken to traverse a 20 frame test animation, and restores previous performance for traversing a single frame.
Added a newline to keep GCC happy on Linux.
Merge pull request #664 from johnhaddon/sceneReaderOptimisation

Scene reader optimisation