Added new optional field to TermData.ts "finalsStartDate"
Changed calendarizeFinals to correctly assign finals to their respective dates instead of the arbitrary (2018, 0, 1)
Refactored CalendarRoot to use date instead of defaultDate
Dynamically update date
Regular classes still populate to the arbitrary 2018 date, which is simpler since those are displayed dateless. All other data relies on the finalsStartDate field specified by defaultTerm.
Test Plan
Make a schedule with classes that have different finals, toggle back and forth.
Try with only Saturday finals classes (Math 2b) or a mix of each (any class and Math 2b), etc.
Issues
Closes #758
Future Followup
Make an alternate to hardcoding future dates (#778) including for finals, or at least hardcode the next few years.
Summary
Regular classes still populate to the arbitrary 2018 date, which is simpler since those are displayed dateless. All other data relies on the finalsStartDate field specified by defaultTerm.
Test Plan
Issues
Closes #758
Future Followup
Make an alternate to hardcoding future dates (#778) including for finals, or at least hardcode the next few years.