Working without compile_commands.json through guesswork

Clangd works pretty well with a good compilation database, setting one up is a big hurdle though. Today we don’t really try to work well without one.

I think we should - if we don’t find a compilation database, let’s throw a kitchen sink of heuristics at the code to try and get it to compile.

Heuristic ideas and design feedback wanted: