Create the new ExecuteSpec/ExecuteResult system. Also reformatted code. Tasks no longer have to check for exit codes unless specified, tasks will fail for a non-zero exit status.