Added workaround for squash/stretch in viewport camera look-through.

The Cortex camera specification is very RenderMan centric, and the camera defines the resolution and the screen window for the render. If the aspect ratios of these are different, then we get squashing or stretching of the viewed image - and when we're using the camera in the viewport we currently must set the resolution to match the resolution of the viewport. The GafferScene.Camera node deliberately doesn't specify screen window to avoid squash/stretch in this situation, but cameras from other sources may not. As a short-term solution we just remove the screen window.

Longer term (but pretty soon I imagine) we may need to revise the Cortex/Gaffer camera representation so that we can deal with cameras in more physical terms, only performing the mapping to a screenwindow/resolution pair for the renderer. Tickets we could bundle into this chunk of work include #277 (main ticket requesting physical cameras), and #371, #276, #58 as related smaller tickets. We may want to consider adopting something like the Alembic camera representation because a great deal of discussion has gone into it, and it aims to balance the complexity of a million physical parameters with the fairly simple requirements of a renderer (a frustum).

Fixes #826.
Merge pull request #827 from johnhaddon/lookThroughFix

Added workaround for squash/stretch in viewport camera look-through.
Added todo in SignalBinding.h.
Fixed typo in PathVectorDataWidget documentation.
Added assertions validating properties for VectorDataWidget columns.
Added VectorDataWidget.editSignal().

This allows custom Widgets to be provided to edit the values held in the table cells.
Added Widget.focusChangedSignal().

Curiously enough, this is emitted whenever the focus changes.
Gave PathWidget popup menus a parent.

This is necessary for the following commit, but it's good practice to give menus a parent generally.
Added custom editor to PathVectorDataWidget.

This enables tab completion, nice dropdown menus and a browser for PathVectorDataParameters. It will also form the basis of the same for PathFilter uis, as requested in #18.
Removed PathVectorDataWidget "Choose path..." popup menu item.

This was always a rather unintuitive workaround for the lack of proper embedded editing, so now we have proper embedded editing we may as well remove it.
Added indexing methods to VectorDataWidget.

These make it possible to convert between data-centric and column-centric indices, and query the index at a particular position.
Added presetsOnly dropdown menus to CompoundVectorParameterValueWidget.

Fixes #470.
Fixed preset menu focus problem in CompoundParameterValueWidget.
Added VectorDataWidget setColumnEditable/getColumnEditable methods.

These allow modification of editability after construction (previously editability could only be specified using an argument to the constructor).
Improved support for CompoundVectorParameter column editability.

The user data specifying per-column editability can now be changed from a parameterChanged() callback, and will be reflected in the UI. Note that this will currently only work if the parameterChanged() callback was triggered by a parameter within the CompoundVectorParameter itself, as changes to other parameters will not trigger the _updateFromPlug() method needed to apply the changes. We may be able to improve on this in the future if we map all parameter user data into per-plug metadata entries and have the UI respond to changes in that, but that is a bigger task.
Added VectorDataWidget.selectedIndices() method.

This returns the ( column, row ) indices for the currently selected cells. Previously the internal meaning of "index" was just the row index (at some point we only allowed selection of entire rows), so I've also renamed all the old internal methods to clarify that they only refer to rows and not indices in the sense used in the public API.
Added right click preset menu for CompoundVectorParameterValueWidget.

This also adds the ability for any custom parameter menu to operate with CompoundVectorParameters, whereas before they couldn't.
Disabled overall Default/Presets menu items for CompoundVectorParameters.

They don't work very well (because they don't know about per column editability etc), I'm not aware of us using them, and we have per-element presets in place now instead.
Removed **kw use for specifying auto-parenting arguments.

This means that at least Gaffer's internal code is ready for when we remove the old mechanism in #655.
Added an auto-load preset for ops.

This is created using the usual preset save dialogue, and loaded automatically by the op app and the browser app in op mode. The preset is not auto-loaded in the case that the op app command line specifies a different preset or any arguments - in that case it is assumed that the caller wishes to specify the parameter values themselves.

Fixes #804, and hopefully doesn't cause any "your pipeline is now entirely at the mercy of presets anyone can make at any time" problems of its own.