Refactored DataFile: TaskReader and TaskWriter

> Refactored DataFile's reading and writing of tasks to file
> Created TaskReader to handle reading of tasks from file
> Created TaskWriter to handle writing of tasks to file