Add a handful of date-related utility methods

* isLeapYear()
* daysInMonth()
* daysInYear()
* whatWeekday()

I made them all pure so they can be used with stored values.  For
example, calculating durations across month/year boundariess in
arbitrary terms (i.e. days, minutes, seconds, etc).  This also
helps provide enough information to fill out the standard time_t
structure.

Signed-off-by: Chris Evich <chris-arduino@anonomail.me>