Added SceneProcedural::allRenderedSignal()

This static signal gets emitted every time the number of SceneProcedural instances that haven't been rendered yet falls to zero.
Clearing some caches after procedural expansion has finished

I'm doing this by connecting to SceneProcedural::allRenderedSignal in the GafferScene::ScriptProcedural
added Context::remove() method
used different form of erase() in Context::remove()
Added Context.__delitem__ python binding
made ScriptProcedural.allRendered private
Merge pull request #1014 from davidsminor/contextRemove

Added Context::remove() method
Merge pull request #1012 from davidsminor/postRenderSignal

Post render signal
Rederived Box from DependencyNode.

Also implemented enabledPlug() and correspondingInput() to allow users to define enabled/disabled behaviours.

This breaks binary compatibility.

Fixes #1015.
Added UI for setting up Box pass-through behaviour.
Merge pull request #1020 from johnhaddon/boxDependencyNode

Box derived from DependencyNode
Avoiding multiple cache insertions in ValuePlug::Computation::compute()

Previously, it was quite common for a given computation result to get inserted into the cache multiple times, resulting in more calls to memoryUsage() than necessary and a very significant performance penalty. I'm now skipping the insertion if the value is already in the cache, resulting in an 85% improvement in startup time for one of my test renders.
Update comment in ValuePlug.cpp.
Destroyed friendship between ValuePlug and Computation.

They never really liked each other anyway.
Added test case for NumericPlug float->int->float connections.
Optimised computation propagation through chains of connections.

It's much quicker to simply traverse to the start of the chain and compute there than it is to compute at each stage.
Attribute node pass-throughs.

Prototype - we should put in the necessary logic to also pass through the globals when not applying attributes there.