[7.3.0] Add basic C++ path mapping support
Forked from #22445
Cherry-pick was attempted but there were merge conflicts in the following file(s). Please resolve manually.
src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java
src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainVariables.java
src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java
src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
src/test/java/com/google/devtools/build/lib/exec/util/SpawnBuilder.java
src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryToLinkValueTest.java
src/test/java/com/google/devtools/build/lib/rules/cpp/StarlarkCcCommonTest.java
cc: @bazelbuild/triage
Cherry-picked in https://github.com/bazelbuild/bazel/pull/22876 by @fmeum