Undo legacy behavior of UnlistableError.

Prior to this, there was not a strict barrier between UnlistableError and
OSError; a directory being unlistable was innately an OSError or WindowsError
of some sort. Rather than invent some new kind of OSError to raise from
MemoryPath, UnlistableError has been changed to not inherit OSError and to not
mimic whatever arguments are passed to it.

MemoryPath now raises UnlistableError when .listdir() is called on things that
are not directories.

The tests for the legacy behavior of UnlistableError are also removed.

For what it's worth, a careful scan of current Twisted code revealed only one
usage of UnlistableError, in t.p.module code:

    except UnlistableError:
        continue

Most FilePath code I've written is blissfully unaware of the existence of
this error and catches any error which might occur, not handling this case
specially.