Add .realpath() to IFilePath, MemoryPath, and ZipPath.
filepath: Fix realpath() to behave correctly.

os.path.realpath() *does* correctly find and unalias symlinks, so the only
excuse here is backwards compatibility, but it turns out that most people
don't actually use symlinks in horrible ways, so we're okay here.
Fix walk() to work on all IFilePaths, not just FilePath.
memory: Fix walk() and test.

We are now all-green and prepared to start implementing interface changes.