Every change triggered by a rewrite rule is anchored at a particular location in
the source code. This patch refines how that location is chosen and defines it
as an explicit function so it can be shared by other Transformer implementations.
This patch was inspired by a bug found by a clang tidy, wherein two changes were
anchored at the same location (the expansion loc of the macro) resulting in the
discarding of the second change.