[clangd] Tracing improvements
- Compose JSON using JSONExpr
- Allow attaching metadata to spans (and avoid it if tracing is off)
- Attach IDs and responses of JSON RPCs to their spans
- When -pretty is passed, also prettyprint the trace
The downside is that large responses make the trace viewer sluggish.
We should make our responses less huge :-) Or fix trace viewer.
NIT: maybe replace new with llvm::make_unique?