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.