path2: Extract posix/windows into their own files

Move PosixPath into posix::Path.
WIP: path2: Implement WindowsPath