Use strlcpy() in preference to strncpy().

Mikhail says the reverse change (git show -b af216a39) was a merge
conflict mistake, so let's put it back again !
Merge pull request #1193 from ediosyncratic/merge-oops-restore

Use strlcpy() in preference to strncpy().
Fix misnamed symbol on Solaris.
RVAL_TYPE_NOPROMISEE is obviously a valid promisee type in EvalContextStackPromisees
Add community guidelines on running unsafe tests.
contrib/cfengine.el: cleanup so complete-symbol works again
Redmine#3279: datatype(), a function which returns the top-level type of a data container