Introduce a new daystamp type to handle the complexity of beeminder daystamps. In particular, this is aware that the conversion of datetimes to daystamps depends on the deadline for the goal, and handles this correctly.
This should allow us to consolidate a large amount of date/time handling code from across the app into a single (tested!) class.
Testing:
Introduced unit tests to exercise the most important behavior
Introduce a new daystamp type to handle the complexity of beeminder daystamps. In particular, this is aware that the conversion of datetimes to daystamps depends on the deadline for the goal, and handles this correctly.
This should allow us to consolidate a large amount of date/time handling code from across the app into a single (tested!) class.
Testing: Introduced unit tests to exercise the most important behavior