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
Split the style sheet out from Widget.py.

Having a huge amount of literal text in amongst the code was getting quite unwieldy.
Reimplemented MultiSelectionMenu using MenuButton.

They both need to do the same thing, and there's no point in duplicating the code. I do wonder if MultiSelectionMenu shouldn't _have a_ MenuButton rather than _be a_ MenuButton, but since it derived from Button previously I've kept it this way for backwards compatibility (ChannelMaskPlugValueWidget for one is relying on this).
Made MenuButtons raise menus on press rather than release.

Fixes #742.
Added menu indicator to MenuButton.

Fixes #493.
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
Brightened the MenuButton menu indicator.
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.
Added scene pass-through to InteractiveRender node.

This allows it to be seen in the Viewer, SceneHierarchy, SceneInspector etc.
Merge pull request #1011 from johnhaddon/menuButton

MenuButton improvements