Fixes issue #44 (removing entities mid iteration)
Uses SnapshotArray to simplify EntityListener dispatch