When moving a function definition to declaration location we also need
to handle renaming of the both function and template parameters.
This patch achives that by making sure every parameter name and dependent type
in destination is renamed to their respective name in the source.
We only need name from the Source. Why not accept it as a StringRef Name directly?
Would allow to call this function even if Source is not a NamedDecl