diagnostics_channel: early-exit tracing channel trace methods
This documents and enforces that tracing channel will not publish events unless subscribers are present at the start of the trace. This enables a more performant early exit and ensures graph completeness as prior to this change a subscription added midway through a trace could receive the later events despite missing the earlier ones.
I'm unsure if we should consider this a major change as there is a behaviour change in that a subscriber will no longer receive events for traces which began before the subscription was made. This could be considered a major change, or it could be considered a bug fix--we'll need to decide how we should frame this.
cc @nodejs/diagnostics