no warnings 'safesyscalls', fatal \0 checks

Add the fatal warnings category safesyscalls.
Disallow binary pathnames and arguments to other syscalls, strings
with embedded \0, which are ignored in the syscall but kept in
perl. Allow an ending \0 though, as several modules add a \0 to
such strings without adjusting the length.
The hidden payloads in these invalid string args may cause unnoticed
security problems, as they are ignored by the syscalls but kept around
in perl PVs.
ExtUtils-Manifest-1.62_01: fix safesyscalls, no double \0 for open()

cp_if_diff used an old-style open(F,"< $from\0") to force an ending \0,
which is not needed with 3arg open, and leads to safesyscalls errors.
no warnings 'safenames', check \0 in names

Check for invalid and potentially insecure embedded \0 in
symbol and classnames, which were until 5.16 silently ignored,
and for 5.16 allowed. Since 5.16 names are internally nul-safe,
but such hidden payloads are hard to detect and may lead to security
problems.