transitionParticipants() - Improve $contactDetails cache maintenance
This revises a very recent commit that touches `static $contactDetails` cache.
Imagine you have two calls to `transitionParticipants()` which involve different-but-overlapping sets:
* First invocation involves Alice and Bob
* Second invocation involves Bob and Carol
The first invocation loads Alice and Bob into `$contactDetails`. The second
invocation identifies Carol as missing. We need to load Carol. Here's the change:
* Before: Carol overwrites Bob in `$contactDetails`. Bob goes missing.
* After: Alice, Bob, and Carol all exist in `$contactDetails`.