Increased default size of browser app.

Fixes #795.
Added immediate execution mode to OpDialogue.

This causes the dialogue to start with the op already executing, skipping the parameter editing phase.
Used OpDialogue to improve progress/error reports in OpPathPreview.

Fixes #792.
Enabled background mode for OpDialogue launched from BrowserEditor.
Fixed OpPathPreview UI glitch.

Destroying and recreating the button on every update was creating flicker issues. We now keep the button and just replace the Op UI each time.
Fixed OpPathPreview bugs.

- Errors if the op result type had no parameter mapping. This was from using an OpHolder instead of a ParameterisedHolderNode - since we don't use the computation facilities of the node and instead run the op ourselves, we don't need to use an OpHolder.
- Using the default IECore ClassLoader and ignoring any custom ones. This was because we were using OpHolder.setOp( className ) rather than loading the op with self.getPath().load().
Improved Window.resizeToFitChild() behaviour.

If called on an as-yet unshown window, it would move the window to the top left corner of the screen. Now the window will still be opened in a sensible place. Added additional shrink and expand arguments to further control the resize behaviour.
Fixed bug in Window.resizeToFitChild() when window is unshown.

The "current size" of the window is meaningless in this case, so we must not take it into account, not matter what the values of the shrink and expand arguments.
Fixed OpDialogue size behaviour.

It now automatically expands if necessary when the parameters or details panes are first shown.
Added more sensible initial widget sizes to BrowserEditor.

The sizes are also saved and restored when modes are switched.
Added support for fixed size CompoundVectorParameterValueWidget.

The ["UI"]["sizeEditable"] user data entry can be given a BoolData value of False, which will cause the +/- buttons to be hidden in the UI, enforcing a fixed length on the data in the vector parameters.
Added per-column editability to VectorDataWidget.
Added per-column editability to CompoundVectorParameterValueWidget.

This uses a ["UI"]["editable"] user data entry in each child parameter, where a BoolData value of False will make the column for that parameter read-only. I would have liked to have used the existing ["gaffer"]["readOnly"] entry which controls the editability of the underlying plug values instead, but that would prevent resizing of the data when only some columns are editable.

Fixes #766.
Merge pull request #812 from johnhaddon/browserOpMode

Browser Op mode improvements
Merge pull request #805 from johnhaddon/browserAppDefaultSize

Increased default size of browser app.
Merge pull request #816 from johnhaddon/compoundVectorParameter

CompoundVectorParameter UI improvements
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.