added CachingTaskOutputTest
added Hash.integer()
reused Hash.integer() where possible
added Hash.newHasher() and reused where possible
added CodeLocation.commandLine()
renamed .task.base -> .task.worker
moved Task, TaskOutput to .task.base
added TaskInput
added Empty.taskList()
reused TaskInput where possible
reused Empty.taskList() where possible