feat(dnsdist): Speed up adding Spans in the Tracer
This makes the code cleaner, and does away with the pre- and
post-activation spans. We now have a "mini" span that we convert to
actual Spans only when they need to be sent out.
Using microbenchmarks the following became clear:
Adding a Span to the Tracer (using `Closer::openSpan`) is now about
45% slower than adding it to an old "unactivated" Tracer. But is is
*twice* as fast compared to the old "activated" Tracer.
When tracing is enabled for a query, most spans are added *after*
"activation". So this commit should speed up query processing when
tracing is enabled.
One downside of this commit is that generating the actual OpenTelemetry
Trace data we now need to create the real Spans, this generation is
about 60% slower. However, when the `delay` option is used for the
RemoteLogResponseAction this slowness is not in the hot path of the
query. As this generation happens after the response has been sent.