Defensively copy callback collections before invoking

This is done in order to prevent ConcurrentModificationExceptions,
caused by the callback unregistering itself when invoked. The pattern
used by this CL is also used by StatusBarStateControllerImpl.

Fixes: 192192372
Test: manual
Change-Id: Ibac2282d5c9242ae063adb2247d4297291fa3abf
Merged-In: Ibac2282d5c9242ae063adb2247d4297291fa3abf
4 files changed