Add a wrapper function to render open() POSIX-compliant.
POSIX mandates that open(symlink, O_NOFOLLOW) fail with errno == ELOOP.
FreeBSD chooses to deviate from this, but Got depends on it. Introducing
a wrapper avoids (1) the need to patch every occurrence, (2) having to
check each release for new instances, and (3) slipups when modifying
complex boolean expressions.