fix iolib.os on Darwin
* PARSE-NAME-AND-OPTIONS used to return NIL as the foreign name if
both a lisp name and a foreign name were specified, but the foreign
name was unknown. In contrast if just a single foreign name was
given, it would be returned without checking for availability.
CFFI in turn would then loop in CFFI:FOREIGN-NAME, trying to deal
with NIL.
So: prefer known foreign names, but return one even if it is
unknown.
* Not all the DEFSYSCALL functions are available on Darwin, so this
broke the build.