By default NIL is a valid C-STRING, translated to and from C's NULL. This is
very convenient because many C functions that normally return strings return
NULL to indicate "false" or "don't know" -- and less commonly also special
case it as an argument.
There are however many C functions that don't check for NULL, so we want a
non-horrible way to say that NIL is not a good value to pass on...
...it remains to be seen if this is non-horrible enough, but at least it
fixes a bunch of memory faults from doing things like (posix-getenv nil), and
replaces them with type-errors.
Not all C-STRING types have been audited yet, just a bunch of the more