[FUSE] Ensure all I/O errors properly distinguish "not found" and other API errors
A user is trying to work with a collection so large that, as of now, the API server can't return it—nginx returns a 504 timeout to the client. They tried to enter this collection's
by_id subdirectory. FUSE reported "No such file or directory," but that's not actually true. The Collection does exist; arv-mount just couldn't fetch it. arv-mount should only return ENOENT when it gets an express 403 or 404 from the API server, and return a more generic I/O error for all other problems.