set up compile_commands.json database (#59476)
This helps to transparently support specifying files to tools such as
clang-tidy or VSCode. We have makefile shortcuts for them also (often
with some extra features specific to the file), but sometimes it helps
to be able to use this information directly, especially as more tools
are gaining support for using this info to provide analysis.
Written by Claude