Fix links and add more tests and comments
Refactor: use hasTrailingPathSeparator
Refactor: joinDrive=combineAlways
Refactor: introduce function hasLeadingPathSeparator for clarity
Cleanup: rename file to dir in takeDirectory
Bug fix: pathSeparator can be forward slash on Windows
Refactor: simplify by calling dropTrailingPathSeparator
Refactor: propSep is not needed
Refactor: break instead of span and 3x reverse

This works because pathSeparators can only occur at the end of splitPath
elements.
Change: isDrive "" == False