Finds the date a given number of days after — or, with a negative number, before — a starting date. Leap years are handled correctly.