Split FilePath into DirPath and FilePath

I don't think this should be overloaded. If we go to all the trouble of having 2 datatypes, it seems not optimal to be able to accidentally call one of these, just for the sake of the name.