Previously `toFilePath` would treat _any_ absolute path that doesn't
start with the `root` (usually the current working directory) as a
relative path, which resulted in some seriously mangled paths. Now we
actually check if that resolved path exists before committing to it.
This fixes#1864.