DispatcherWindow and background LocalDispatcher

This brings several changes aimed primarily at #866. I've added a DispatcherWindow and hooked it to the various Execute UIs (see first commit). It presents the user with an opportunity to alter the dispatcher settings, and a button to dispatch, which then runs on a background thread.

I've also modified the LocalDispatcher to use subprocesses to dispatch each task via the execute app. It saves the current script to a temporary location, and outputs progress as IECore messages. It passes the context entries for each task to the execute app via command line arguments.

Finally I've stopped ExecutableRender from forcing the script to save, fixing #310.

The last commit on here I except you'll ask me to drop (hopefully with some advice on a workaround). It's just getting around the ```repr``` issue that I commented about on #866.