Added ImageReader::supportedExtensions() method.
Delayed module imports in test app.

When running "gaffer test ModuleName", the other modules are no longer loaded. This can be useful when running a subset of the tests in an environment where GafferUI won't import due to the lack of an X connection (over ssh for instance).
Added Viewer.view() method.

This returns the current view, which allows its settings to be modified - they are exposed simply as plugs on the View class itself.
Added SceneReader::supportedExtensions() method.
Added workaround for Qt OpenGL problem on OS X.

This would manifest itself as "invalid framebuffer" errors leaking into the IECoreGL and PyOpenGL code and being reported there, causing various forms of havoc.

Fixes #404.
Fixed some "invalid drawable" error messages on OS X.

I had hoped that this fix would make the previous commit unnecessary, but testing shows that they address different problems and both are needed. Additionally, although this fixes the initial "invalid drawable" messages on startup, they still appear later on when switching between fullscreen and not-fullscreen. This goes some way to addressing #396, but I suspect it'll be very hard to fix it completely without patching Qt in some way.
Updated view app to display all relevant PathPreviews.

This makes it capable of showing more information than just the basic viewer it used before - IndexedIO and header previews for instance.
Removed inaccurate comment from NodeUI.
Added support for BoolPlug->NumericPlug connections.
Added support for NumericPlug->BoolPlug connections.
Added NodeToolbar and StandardNodeToolbar classes.

These are refactored out from the private Viewer toolbar class. Currently they are still only used to present plugs for the Views, but this is a step towards having toolbars for any of the standard nodes.
Removed unnecessary import from GafferUI.__init__.py
Fixed StandardNodeToolbar for dynamic addition and removal of plugs.

This is using the same method as is used in StandardNodeUI and CompoundPlugValueWidget. The method itself has flaws (although they're much more likely to be an issue for CompoundPlugValueWidget than for the toolbars), so I've added some more notes as to how we might be able to address them.

Also added workaround for labels having an unwanted width, and a todo for getting it fixed.
Improved CompoundPathPreview default tab choice.

The later tabs are more specialised and therefore a better guess as to the most interesting for a given path.
Made Viewer display node toolbars.
Added SceneReaderPathPreview class.

This allows scene caches to be previewed in the browser and view apps. A node toolbar provides options for adding a camera to the scene and having it track a particular object.

Fixes #416 and fixes #636 by way of demonstrating how it can be done.