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.
Merge pull request #812 from johnhaddon/browserOpMode

Browser Op mode improvements