Added ScenePlug::pathToString() method.

This mirrors the existing stringToPath() method.

Also fixed ostream output of empty paths.
Added outputLight() method to RendererAlgo.h.
Added test case for disabled GafferScene::Lights.

While hunting another bug it was necessary to check that disabled lights don't output a light set. It turns out that they don't and the problem is elsewhere, but more tests are always good.
Fixed bug in DependencyNode dirty propagation order.

This ensures that dirtiness is only signalled for a plug after it has been signalled for all the plugs it depends on and all its children.
Implemented light add/remove/hide/show for IPR.

Fixes #874.
Fixed circular reference in viewer grid menu.
Fixed shutdown warning when running `gaffer test GafferTest`.
Derived all Gaffer unit tests from GafferTest.TestCase.

There was a mix of GafferTest.TestCase and unittest.TestCase base classes before. It's better if they all use the Gaffer one so they benefit from the new tearDown() method and any other future additions.
Merge pull request #881 from johnhaddon/lifetimeFixes

Python object lifetime fixes
Merge pull request #880 from johnhaddon/lightIPR

Implemented light add/remove/show/hide in IPR renderer