Update existing outgoing message events when reported as sent by telepathy

The first part of this change refactors getEventForToken to be synchronous, which it would be anyway. The asynchronous logic was broken and awkwardly inflexible.