Added icons for upcoming SceneInspector features.
Simplified SceneInspector Row class and added a DiffRow.

The Row wasn't general purpose enough and now just contains the bare minimum needed for alternating colours. The DiffRow always displays a diff, and will be specialised to provide features specific to the SceneInspector.
Introduced Inspector abstraction to SceneInspector.

An inspector is simply a callable which can suck a value out of a Target. By passing these around we have abstracted out the inspection process enough to start performing queries on a targets ancestors and upstream nodes, to provide more advanced SceneInspector features.
Added removeOnClose argument to Window.addChildWindow() method.

It's becoming a common enough pattern that making it as easy as possible makes sense - otherwise it's too tempting to be lazy and just leave the windows dangling.
Added attribute inheritance diagramming to SceneInspector.

This allows the user to see how an attribute has been inherited through the hierarchy to the inspected path, with each change of value being shown in diff form.
Fixed gaps in rails in SceneInspector.

These occurred if the content being displayed was larger than the images used to create the rail.
Added corner widgets to the SceneInspector.Diff class.
Added visual indication of attribute inheritance in SceneInspector.

Fixes #206.
Removed gear icon from SceneInspector, replaced with context menu.

This is nice in that we don't need ugly menu items like "Show Inheritance->For A", because we know which value was clicked on. It's not immediately obvious that a context menu is present though - we made need to do something to make it more discoverable.
Implemented update-on-dirty for SceneInspector inheritance popup windows.

The SceneInspector class can now be instantiated with a specific set of Sections, and the target paths may be pinned. The inheritance diagram is now implemented as a section, meaning we can simply put a small SceneInspector in the popup window and take advantage of all the update machinery implemented there. We could also use the same mechanism to tear off copies of any SceneInspector section if we wanted to in the future.
Fixed SceneInspector inheritance window layout glitch.

I don't fully understand what is happening but I think it's because when we use the auto-parenting mechanism for a parent which is already visible, Qt realises the child QWidgets earlier in the process, and then fails to update the layout when we change their properties subsequently. By using `_mainColumn()[:] = rows` we not only avoid this, but also do the deletion of existing rows and addition of new ones in one go, which cuts down on intermediate updates and gives a snappier build.
Fixed SceneInspector update bug.

If an update was required before `_updateFromContext()` was called, `self.__playback` would be `None` and errors would ensue.
Made EventLoop remove idle callbacks immediately after calling.

When an idle callback was to be removed (because it returned False), it wasn't removed immediately, but only after calling all other idle callbacks. This made it impossible to re-add the removed callback from one of those subsequent callbacks (an assertion was fired). The removal is now immediate so the callback can be re-added if necessary.
Added closing of SceneInspector popups when target node is deleted.
Added closing of SceneInspector popups if target paths cease to exist.
Added a useful title to SceneInspector popup windows.
Added hotspots to Pointer class.

This allows the center of the pointer to be specified, so there are no longer jumps when switching between pointers. Pointer instances can now be instantiated, and these store an image along with the position of the hotspot. Added new setCurrent()/getCurrent() methods for specifying which instance is the current one, and a registry for storing a map of named Pointer types which can be used throughout the rest of the code.

The old methods remain for now, but all use of them has been removed.
Removed old Pointer methods.

This is only separate from the previous commit in case anyone requires backwards compatibility - they could then revert just this one. A quick search on GitHub didn't show up any use of the old methods in IE projects though.
Added context menu pointer in SceneInspector.

To give a little indication that a context menu exists on the values displayed.
Fixed SceneInspector error when deleting node.

This was introduced by the code to remove popup windows when paths become invalid. It seems that it might be a good idea to use WeakMethods in idle callbacks as a general rule