fix the insane limits of laterthan, max year 1000 makes it useless. Redmine #6530.

(cherry picked from commit 5262df056aba4db160cdafac0ce7a9a4b2387752)
Update changelog
join: Don't add delimiter if only null-values are left

Looks like a nested loop that introduces polinomial complexity,
but the inner loop advances the outer loop as well.

Fixes Redmine #6552
(cherry picked from commit db3ac8257edc35578e8124dab11891ce8a340076)
Changelog entry for 6552
Merge remote-tracking branch 'upstream/3.6.x' into 3.6.x
Rename 'vbuff' to the more appropriate 'randfile'.

(cherry picked from commit 05aa9c7b1600734716a3aeaf25e3ccd102c3557f)
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.

(cherry picked from commit 465bdb874592a2c1fecfbdeb877bf6d678cb5d7e)
For vailidating input files we must use GetInputDIr(), because we can override its setting via configure options,
see https://dev.cfengine.com/issues/6551

(cherry picked from commit 56f40f470a213d816e09b10ad58c64285c6e4b84)
Remove the uninitialised buffer PRNG seed.

Use instead some rand() filled buffer. It is a bug if even that is not
enough, so complain loudly with UnexpectedError() (but try to continue).

In any case these kinds of hacks shouldn't be used, so print a
LOG_LEVEL_INFO message if that is necessary (e.g. on chroots that don't
have /dev/urandom). Still can be avoided by using WORKDIR/randseed.

(cherry picked from commit b75c89d5d7eac6bb63d722423b256cecb81b6034)
Seed C PRNG with weak data, seed the OpenSSL PRNG...

...with bytes from rand() only if system's source of entropy is good.

(cherry picked from commit 560c0d67fe7602033390fd0484e91ea44d4838af)
comment

(cherry picked from commit 05ed7829f819e33830812c687eea01ad7844f692)
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().

(cherry picked from commit 9f3ff97eb92f42382f2b9fe47ee26739c00c0611)
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 !

(cherry picked from commit b4e470f9e74737fbf31bb7968e0a5644b03bbd29)
Reindented laterthan.cf

(cherry picked from commit 8f262c124fa6eda21d04aaa8511a3a30f7786454)
Merge remote-tracking branch 'upstream/3.6.x' into 3.6.x