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.