AT_NAME was being emitted before the directory paths were remapped. This
ensures that all paths are remapped before anything is emitted.
An additional test case has been added.
Note that this only works if the replacement string is an absolute path. If not,
then AT_decl_file believes the new path is a relative path, and joins that path
with the compilation directory. I do not know of a good way to resolve this.
I might have missed something, but can't this be a std::string&?