Fixed the task creation process. Added a class, TaskFactory, which creates tasks using one string of arguments. When a user does not specify a note, location, or end date, TaskFactory anticipates a null argument and will create a task which does not have a note, location, and/or end date. You do not need an instance of TaskFactory to use its task creation method.

Also, tidied up the TaskFileReader class to improve readability.