This improves the error reporting, in particular for fs.ErrorPermissionDenied which was being reported as an IO error.
This passes the tests and works efficiently with the non sequential vfs ReadAt fix.