Fix depfile name construction
- When using -o, the provided filename is using for constructing the depfile name (when -MMD is passed).
- The logic looks for the rightmost '.' character and replaces what comes after with 'd'.
- This works incorrectly when the filename has no extension and the directories have '.' in them (e.g. out.dir/test)
- This replaces the funciton to just llvm::sys::path functionality
Differential Revision: https://reviews.llvm.org/D67542