This makes the generated files go to the right place when using a non-default toolchain.
Most of it seems correct, but I haven't verified it. Everything in llvm/utils/gn/secondary/clang/include/clang ought to be fixed though (and if I do that I can build a clang binary for Android with my other patches, which isn't all that useful for what I'm doing but it does at least serve to validate the mechanism). I'll send out a patch that does that.
The second argument to rebase_path is the path that the result should be relative to (normally root_build_dir when creating arguments for an action). The output path itself is already inside root_gen_dir.