Resolving issues #3 and #4

@gonfunko
#3 #4
~420

I realize this is much larger than initially estimated, so I've included this following rational for the breakdown

issue 3: Initially worked on a 3 level deep nested task system, but decided to go ahead and try an "infinitely" deep solution with recursion. I liked this system very much, and used it for almost every additional method relating to subtasks. 
240 points requested

issue 4: Required me to learn a lot about Comparator objects, and sorting with ArrayLists, as well as how comparisons work for Strings and Calendar objects. Additionally, I added a function that prints only the tasks that are due on the current date
180 points requested

In addition, I fixed up all of the problems mentioned on the Gauchospace notes for project 2, as well as added in new Javadoc, and general cleanliness.