[XPTI] Fix data races in tracepoint lookup and deletion (#21874)
Several functions in the Tracepoints class accessed MUID64Check and
dereferenced tracepoint pointers without holding MTracepointMutex,
allowing use-after-free when concurrent threads perform lookups
(xptiLookupEvent) and deletions (xptiDeleteTracepoint).
Fixes:
- lookupEventData: acquire shared lock before MUID64Check access
- releaseEvent: acquire exclusive lock before MUID64Check access (was
only locked for the erase/delete, not the preceding check)
- isValidUID64: acquire shared lock before MUID64Check access
- deleteTracepoint: move TP->MUId read inside the exclusive lock
- findEvent, queryPayloadByUID, lookupPayload: move into implemenation
into new thread-safe Tracepoints methods