On open failure, set errno instead of printing message

Having this low-level routine printing diagnostics itself causes
problems now that hopen() is used to resolve files via paths such
as $REF_PATH.  If the file is fulfilled by the second path entry,
a not-found error may already have been printed from the first entry.

Instead set errno so that higher-level callers have a chance to emit
a useful error message themselves where appropriate.