[Bleeding] Add new SpawnReasons for curing or infecting villagers. Adds BUKKIT-5370

Previously, zombie villagers spawned due to infection and villagers spawned
due to being cured of infection had SpawnReason.DEFAULT. This adds two new
SpawnReasons to handle these cases - SpawnReason.INFECTION for infection, and
SpawnReason.CURED for purification.
[Bleeding] Add missing spawn reason for Spider Jockey. Fixes BUKKIT-5377

A SpawnReason already existed for this case, but was not used due to changes
in Minecraft internals that moved the call to addEntity from
SpawnerCreature.java to EntitySpider.java, resulting in a missed diff.
[Bleeding] Add missing spawn reason for Ocelot babies. Fixes BUKKIT-5378

Ocelot babies were spawned at one point with SpawnReason.NATURAL, but changes
in Minecraft internals that moved the call to addEntity from
SpawnerCreature.java to EntityOcelot.java resulted in a missed diff. This
restores the missed diff and also adds SpawnReason.OCELOT_BABY to distinguish
between regular ocelot spawning and the babies.
Add BiomeTheEndDecorator.java for diff visibility
[Bleeding] Add SpawnReason for Ender Dragon. Adds BUKKIT-5379

Previously, the Ender Dragon spawned during world generation was spawned with
SpawnReason.DEFAULT. This changes the SpawnReason to CHUNK_GEN in order to
maintain consistency with the calls made to CreatureSpawnEvent for all other
mobs during world generation.
Add WorldGenVillagePiece.java and WorldGenVillagePieces.java for diff visibility
[Bleeding] Add SpawnReason for Villagers. Adds BUKKIT-5380

Previously, all Villagers spawned during world generation were spawned with
SpawnReason.DEFAULT. This changes the SpawnReason to CHUNK_GEN in order to
maintain consistency with the calls made to CreatureSpawnEvent for all other
mobs during world generation.
Add WorldGenWitchHut.java for diff visibility
[Bleeding] Add SpawnReason for Witches. Adds BUKKIT-5381

Previously, all Witches spawned during world generation were spawned with
SpawnReason.DEFAULT. This changes the SpawnReason to CHUNK_GEN in order to
maintain consistency with the calls made to CreatureSpawnEvent for all other
mobs during world generation.
Add BlockMonsterEggs.java for diff visibility
[Bleeding] Add missing spawn reason for Silverfish. Fixes BUKKIT-5382

Silverfish do not spawn naturally, only from a mob spawner or when a
silverfish block is broken due to a player breaking the block or from a
silverfish summoning other nearby silverfish. This adds a new SpawnReason,
SILVERFISH_BLOCK, to handle this special case.