Fixed VectorDataWidget bool delegate for PySide.

PySide seems to have a few deficiencies in this area compared to PyQt - see comments for details.
Improved VectorDataWidget numeric editing.

We now use a GafferUI.NumericWidget for editing rather than a QWhateverItWas. This provides a more consistent experience with the rest of Gaffer and fixes some graphical problems.

Fixes #637.
Simplified OpDialogue exception reporting.

We now output the full stacktrace only at debug level, to help users focus on the simpler message that hopefully the exception contains.

Fixes #806.
Merge pull request #809 from johnhaddon/vectorDataWidgetNumericDelegate

VectorDataWidget fixes
Merge pull request #810 from johnhaddon/opDialogueTraceback

Simplified OpDialogue exception reporting.
Fixed "Open Recent..." crash bug in PySide builds.

Fixes #548.
Merge pull request #811 from johnhaddon/openRecentCrashFix

Fixed "Open Recent..." crash bug in PySide builds.
Added workaround for Coverity build failure.
Fixed NodeGadget::noduleTangent() binding.

Because of a signature mismatch, any python implementations of the method would not be picked up from C++.
Fixed potential bug in NodeGadget::create().

It was possible to dereference an invalid iterator if no creator was registered for the base node type. This didn't happen in practice, but the new implementation is more idiomatic, doesn't allocate temporary memory unnecessarily and should keep Coverity happy.
Fixed LRUCache getter cost calculations.

Because the cost arguments weren't references, the costs weren't getting returned to the cache.
Fixed Metadata test hang.

Because testMetadataThreading() emits metadata changed signals on arbitrary threads, if any python slots happen to be connected, they must acquire the GIL. Therefore we must release the GIL before running the test. This problem didn't present itself when running the tests in isolation because no slots are connected then, but if run in a scenario where a slot was connected, the problem would become apparent.
Fixed "KeyError: 'currentTab'" error when loading custom layouts.
Added ViewportGadget viewportChangedSignal() and cameraChangedSignal().
Added SpacerGadget size accessors.
Fixed upside down nodule labels

This was occurring for certain tangents because we were only considering one rotation direction when detecting upside down orientations to be corrected.
Fixed overzealous Viewport drag tracking.

We would track drags whenever the mouse was in the autoscroll region at the edge of the viewport - even if the drag started there and the user was dragging the other way. This fix ensures that the drag doesn't start until the user has dragged further out of the viewport than their start position.

Fixes #550.
Improved StandardNodule to support interior Box connections.
Improved StandardNodeGadget to support interior Box connections.
Added iterator typedefs for all GafferUI::Gadget subclasses.