Restore support for denormal times in laterthan() and add it in on().

If someone specifies a date-and-time while adding an offset to one of
the components (e.g. to specify a given number of days, or hours,
after some specified event whose date and time are known) we can
handle that, doing The Right Thing (as handled by mktime, normalising
the date-time sensibly), by simply not forbidding it.  Recent changes
to laterthan() removed support for this; on() has not previously
supported it; but it makes sense to support it for both, so I'm
allowing both to take values in a wide (but still limited) range.
Also, move on()'s argument description to alongside those for the
other time-related functions with the same arguments.
Eliminate FnArgsToTmBase1Month()'s duplicate code.

Just adjust the month and day-of-month returned by FnArgsToTm().
Copy, paste and tweak a bit is easy but that's not a reason to do it.
Added some clarifying comments to FnArgsToTm().
Make laterthan.cf 32-bit safe.

On systems with a 32-bit time_t, the max and min are 68 years and 19
days.  So don't test outside that range !
Reindented laterthan.cf
Merge pull request #1943 from ediosyncratic/denormal-datetime-fix

redmine6554: Restore support for denormal times in laterthan() and add it in on().