There is a discrepancy between how clangd processes CDB loaded from
JSON file on disk and pushed via LSP. Thus the same CDB pushed via
LSP protocol may not work as expected. Some difference between these two
paths is expected but we still need to insert driver mode and target from
binary name and expand response files.
Part of the diff addTargetAndModeForProgramName came from D138546
Test Plan: check-clang-tools
getting real filesystem is cheap, no need to make this part of the state, just inline it into tooling::addExpandedResponseFiles call.