rewrote the calendar

The Mayans may get angry, but now the calendar is using only the turn_number as time variable and deriving everything else from there.
You can still change the derived variables directly, but you shouldn't. Instead you should add or remove the appropriate amount of time either in turns or with another calendar object.
If there are things that access the calendar in this deprecated way, they'll have to be changed, but thay may still work even under this system, so maybe making this variables private and adding proper accessors for every each one would be more advisable; but then anything that reads this variables needs to be changed, not just what writes.
I expect the sunrise and sunset functions to work right, but they need specific testing, besides testing everything else ever that uses the calendar.
Hopefully that's all that needs to be done and it was isolated enough.
I think `season_length()` is already in days? And why the cast to int, `turn_number` and `season_length()` are already int.