Updating current selection in PathListWidget.setSelectedPaths().

The QTreeView supports a set of selected (highlighted) items, and also a "current" item, which is not necessarily selected but is the focus of keyboard operations and the like. The call to selectionModel.clear() clears both of these, so it's good to place the "current" item back at the top of the selection so that keyboard operations start where the user would expect.
Added GafferUI.BoxEditor to allow editing of Box UIs.

This will form the basis for creating custom UIs for GiftBoxes and References.
Added layout reordering to PlugLayout.

This is controlled by a plug Metadata entry called "layout:index", which is used to sort the plugs before generating the UI.
Fixed PathListingWidget.pathAt().

There was an offset in the result because Qt expects the coordinate to be specified in the space of the viewport rather than of the parent widget.
Fixed bug in GafferUI::Pointer::setFromFile( "" )

It should have been resetting the pointer (as documented) but was instead erroring.
Added a DictPath.dict() accessor.
WIP