Viewer camera

This implements basic look-through-camera support for the viewer. There's still quite a lot to think about in terms of how Gaffer/Cortex implement cameras, and how that all interacts with the render resolution, so this is just a basic implementation which hasn't attacked those issues but is hopefully still useful.

I'd like to get this merged as it is if possible, and then as people play with it and we start to export cameras in .scc format, hatch a plan for the other stuff.