Split FilePath into DirPath and FilePath

In this scheme there's no root in the sense of `/`, just a DirPath with no name where you can start appending names. Any notion of absolute/relative is delegated to the users of DirPath (how they want to interpret it).