Start isolating generic implementations of helper methods.

We're going to eventually remove AbstractFilePath.
Move listdir()/children() win32 and OS logic to FilePath.

Most implementations don't need to worry about this. As a plus, change ZipPath
to directly raise UnlistableError instead of fake OSError for unlistable
ZipPaths.
Isolate another generic method from AbstractFilePath.
Continue simplifying and genericizing.
Genericize, slightly clean up, and share segmentsFrom().