* Some functions have not been ported from FilePath and are commented out:
splitSearchPath, getSearchPath, normalise, equalFilePath, makeRelative,
makeValid. Implementations would be accepted if you need any of these.
* combine checks hasDrive on posix, this is unnecessary
since hasLeadingPathSeparator checks the same thing
there. isWindows && hasDrive would cover windows while
avoiding that overhead. Benchmark to see if it improves.
* Test suite may not build on Windows due to its use of
getFileSystemEncoding.
* How filename encoding even works in this ByteString library should perhaps be
documented.