Simplify the old interface (one less argument, simpler termination test) and
add documentation about it. Add more sanity checks (mostly under INVARIANTS,
but also in the general case to prevent infinite loops). Drop the explicit test
on minimum directory entry size (without INVARIANTS).
Deal with the impacts in callers (dirent_exists() and vop_stdvptocnp()).
dirent_exists() has been simplified a bit but preserves the exact same
semantics, even if the return code has been reversed (0 now means the entry
exists, ENOENT that it doesn't and other values are genuine errors).
Export new _GENERIC_MINDIRSIZ and _GENERIC_MAXDIRSIZ on __BSD_VISIBLE, and
GENERIC_MINDIRSIZ and GENERIC_MAXDIRSIZ on _KERNEL.