Add TaskOutput::hash
Re-use task output where identical