* use _DIAGASSERT() to check pointer arguments against NULL and file
descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.
the first two items result in the addition of code similar to the
following in various functions:
_DIAGASSERT(path != NULL)
#ifdef _DIAGNOSTIC
if (path == NULL) {
errno = EFAULT;
return (-1);
}
#endif

If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.
This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.

Seriously revamp libc's nlist()/__fdnlist() support:
(1) split nlist() into multiple files, for clarity and to make
ELF 32/64 support easier,
(2) support multiple executable types at the same time, and
(3) add support for 32- and 64-bit ELF (32-bit ELF support
originally from OpenBSD, but with several bug fixes so
that it actually handles symbols types more correctly
(and therefore _works_ for some of the more tricky uses
of the nlist routines) and changes for 64-bit ELF support).