Remove withDayOfMonth (not required)
Correct plusMonths calculation, make safer.
Make isLeapYear calc safe for negative years ending in 99!
Correct calculation for getLeapYearsBefore