Duplicate spawn bug inside CreatureSpawnEvent.

factory.getHostage() will take a villager or entity parameter and attempt
to cast it to type Hostage. If the cast fails with ClassCastException,
then getHostage() will also spawn an actual Hostage entity and return a
reference to the Hostage.

The original entity does NOT spawn because of event.setCancelled(true)
which cancels the CreatureSpawnEvent because the test for isHostage()
fails.

The problem is that 3 Hostages are configured to spawn, and expected to
spawn. However, I am seeing 6 Hostages spawn instead of 3.

When I just cancel the CreatureSpawnEvent, then debugging shows that the
event is called 3 times, but no Villagers are spawned (as expected).
However, when I add the spawning code, that's when I see
CreatureSpawnEvent being executed more times than expected.

Possible solutions seem to be
1. Do not spawn stuff inside CreatureSpawnEvent because of this glitch
(even with a delayed task, it still glitches).
2. Have the HostageArena plugin handle the actual spawning of Hostages
(instead of BattleArena... which only knows how to spawn Villagers, not
CraftHostage, which extends EntityVillager).
3. Figure out why it's glitching.