This is the first change towards a clang-query based search and replace tool.
It introduces new infrastructure for making RefactoringCallbacks integrate with RefactoringTool, and adds a new RefactoringCallback that replaces a node with the result of expanding a template that can reference other nodes.