Fix sceIoDread() and ISO 9660 directory reading

The umd/io/umd_io test now passes, but only when --mount something.iso is passed an ISO that looks like a PSP game (which test.py currently never does.)

The changes here are:
 * sceIoDread() now correctly returns 0, 1, or error (never > 1) per new expected.
 * sceIoDread() no longer returns 0 for the last directory entry (0 means not valid, end.)
 * ISOFileSystem no longer duplicates the last directory entry when a directory doesn't end cleanly at a sector.

Because the two last bugs overlapped, it's unlikely this has any practical impact.  Everything still seems to work the same.

-[Unknown]