Event listener overhead reduction pt. 3 (#52455)
* Remove unused field
* Reduce common-case EventWrittenEventArgs overheads
Store PayloadNames on EventMetadata instead of EventWrittenEventArgs
* Avoid duplication around TraceLoggingEventTypes
* Move GetParameterNames into property getter
* While => For
* Add EventMetadata.ParameterTypes
* Defer fetching ParameterTypes
* Add RequiresUnreferencedCode attribute to TraceLoggingEventTypes getter
* Revert init => get
* ActivityId => RelatedActivityId
* Remove eventId arg from DispatchToAllListeners
* Store the first caller's ActivityId in EventWrittenEventArgs
* Move ActivityId from MoreInfo to base object