Fixed python bindings crash when passing None for a scene path.

The boost::python::extract<*> method seems quite content to extract None as a NULL pointer, so we have to guard against that.
Fixed SceneInspector errors where the selected path doesn't exist.

This could occur quite easily when comparing two different hierarchies.
Optimised SceneInspector by deferring updates when invisible.

We use the visibilityChangedSignal() to do any pending updates when we actually become visible to the user. Prior to this there was quite some overhead to having a SceneInspector in the layout even when it wasn't the active tab.
Disabled SceneInspector update during animation playback.

When we're playing back animation, we want to see the animation at the best frame rate possible, and the SceneInspector gets in the way of that.
Fixed misalignment caused by SceneInspector optimisation.

I'm not quite sure what was happening, but it's something to do with Qt applying the styles differently whether it's done before or after the widget is first shown. Giving both frames special status before they become visible means that they both behave the same way.
Stopped SceneInspector updating when scene expansion changes.

We only need to update when non-ui variables change.
Added value drag/drop to SceneInspector.

Fixes #830.
Merge pull request #931 from johnhaddon/sceneInspector

Another batch of SceneInspector improvements
Dispatching can be cancelled via preDispatchSignal().

Slots should have the signature `bool slot( dispatcher, nodes )`, and may return True to cancel execution, or False to allow it to continue.

Fixes #929.
Merge pull request #932 from andrewkaufman/cancelDispatch

Dispatching can be cancelled via preDispatchSignal().
Fixed SceneWriter::executionHash to include file path
Fixed SceneWriter when caching multiple time samples.
Merge pull request #933 from andrewkaufman/sceneWriterFixes

SceneWriter fixes