Introduce ISOPath.

There are some kinks to be worked out, but listdir() works, which is pretty
great for a first swing.
iso: Fix a bunch more errors.

Now it's possible to get a file's contents. Yay?
memory: Add MemoryFile context manager hooks.

Just like a real file-like object.
iso: Add tests for ISOPath.
iso: Fix most tests.

The final test requires a four-letter file extension to be valid; this might
not happen until Rock Ridge or Joliet is supported.
tests/iso: Patch single expected failure.