Add RESULT_STDOUT_MISSING to result codes to signal missing stdout.
Differentiate between application and system level failures when retrieving
stdout of task from worker. Propagate these failures to
process_available_results() where failures are currently handled.
Return app-level failure in process_result()
if the length of stdout exceeds 1 GB or if its memory allocation fails.
Change return type of process_available_results().
There is no necessity to return an integer since it handles failures and the
caller doesn't have to worry if it succeeded or failed.
App-level failures in process_result() must be handled after we have retrieved
all the outputs of the task. So don't return with an app-level failure. Just set
the result code in the task.
Evict all output files of a task from remote cache on missing stdout or output
files.