[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 Chicken Jockey. Fixes BUKKIT-5482

Minecraft 1.7.4 added a new rare mob, the Chicken Jockey, which consists of a
baby Zombie riding on a chicken. Since the chicken is spawned as a result of
the zombie, a new SpawnReason, MOUNT, is used to handle this special case,
rather than the existing SpawnReason.JOCKEY.