fix(s3fs): support opening directories
WASI guests (e.g. python.wasm via wazero) call OpenFile(".", O_RDONLY)
during fd_prestat_get to enumerate preopens, then ask IsDir() on the
result. s3fs would issue a GetObject with an empty key, fail, and
surface as EIO -- crashing python at _start.
Add an s3DirFile pseudo-handle for directory paths and route OpenFile
through it: short-circuit "" / "." to skip the S3 call entirely, and
on NoSuchKey/NotFound probe with ListObjectsV2 so directory prefixes
return s3DirFile while real misses get fs.ErrNotExist (ENOENT).
Assisted-by: Claude Opus 4.7 via Claude Code
Signed-off-by: Xe Iaso <me@xeiaso.net>