new implementation of Season / SeasonImpl.

the former implementation would fail when season is passing the 31st of
December, this is fixed when using the new implementation. Might still
have minor issues with leap years.