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