Improved exceptions thrown from ScriptNode::execute().

We were leaking boost::python::error_already_set exceptions out into C++, which we should not do. C++ code should be able to call methods without any concern for whether or not the underlying implementation uses Python. The Python exception is now converted to a descriptive C++ exception including the line number.
Added ignoreScriptLoadErrors parameter to execute app.

Also improved reporting of errors when the parameter is off and loading fails - instead of a raw python traceback with irrelevant information, a properly formatted message is displayed.
Added todo to LocalDispatcher Job implementation.
Added ignoreScriptLoadErrors plug to LocalDispatcher.

Fixes #1084.
Made ScriptProcedural ignore errors when loading the script.

This isn't ideal, but we don't want the ScriptProcedural to prevent a render occurring when the dispatcher has turned on tolerant loading via `gaffer execute -ignoreScriptLoadErrors`. Because we currently only use ScriptProcedural from ExecutableRender nodes, we're effectively allowing the dispatcher to be the gatekeeper for load errors - if the dispatcher is willing to let them through, then the procedural will just accept that. In practice, this doesn't really change much, since both the IECoreRI and IECoreArnold procedural loaders already just catch exceptions and print them anyway.

If we find use cases where we want the procedural to error properly at a later date, we may need to revert this, or provide a procedural parameter which the ExecutableRender nodes turn on. With a bit of luck, people will get their scripts all shipshape by then, and we won't need tolerant loading in the dispatchers at all.
Merge pull request #1092 from johnhaddon/laissezFaireDispatcher

Laissez faire dispatcher