Remove the 'parent build operation' property from `ProgressStartEvent` as this can be inferred from the other properties. Reduce the amount of mapping required to perform console output grouping and to simplify the output event stream before it is seen by any consumers.
Avoid deadlock between output event renderer and listener manager (#4661)Previously, the output event listener that forward build op notifications was downstream of the output event renderer, which has its own lock. It was possible to deadlock between this lock and the global listener manager lock.Now, the build op notification forwarder is a peer of the renderer, so is not notified under its lock.
Emit build operation progress events for logging output (#4537)* Tweak BuildOperationListener#progress api* Use build operation id to reference progress* Add workaround for tracing log output via build operation progress for composite builds* Replace some Object typing of operation identifiers with OperationIdentifier.* Associate all progress logging with the current build operation.* Update logic to accommodate for all progress events now having build operation IDs.* Don't allow ProgressStartEvent.buildOperationCategory to be null.** Default it to uncategorized.