Yet Another General Update

Project: edited printOut for project, wrote an outline for what
calculateTimeFrame does, updated the Project contructor, addTask now
adds all the tasks children as well

VysiChart: added another test (a more nested scenario, takes advantages
of some new/updated methods & contructors)

Chart: added some validation (currentTask isn't set for empty task
arrays)

Gantt: added some validation (boxLength is no longer calulated for empty
task arrays) prior to this caused a crash

Task: two new contructors added, and a little bit of code reformatting