trackMessageOpenEvent
Records that message was opened by the app. The message is validated against the module store before an open is recorded; opening an unknown message is a no-op. This records the open analytic only — it does not mark the message read (that is the caller's responsibility).