Refactor Python error handling code into separate header.

Refs #7019
Translate Python errors to C++ exception in RunPythonScript

Refs #7019
Adjust exported WorkspaceCreationHelper module to only uses interfaces

The unit tests will now behave much more like a real situation where
the concrete types are not exposed.
Refs #7019
Ensure RunPythonScript sees proper workspace types.

Refs #7019
Merge remote branch 'origin/bugfix/7919_render_tab_controls_switch'
Merge remote branch 'origin/feature/7959_log_to_temp'
Merge remote branch 'origin/feature/7898_adaptable_Qradius'
Merge remote-tracking branch 'origin/feature/7712_schema_for_groupingworkspace'
Merge remote-tracking branch 'origin/feature/7975_eqsans_transmission_fix'
Merge remote branch 'origin/feature/7958_update_algorithm_wiki_content'
Merge remote branch 'origin/feature/7946_RemoteJobTimes'
Merge remote branch 'origin/feature/7607_remove_v1_python_api'
Merge remote-tracking branch 'origin/bugfix/7955_muon_deadtime_file_logic'
Merge remote-tracking branch 'origin/bugfix/7974_fix_proxy_win'
Merge remote-tracking branch 'origin/master' into feature/7019_cpp_runpythonscript
Update class name as a result of change elsewhere. Refs #7109
Merge branch 'feature/7019_cpp_runpythonscript' into develop