[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 new SpawnReason for ocelot babies. Adds BUKKIT-5378

On occasion, ocelots will have a baby spawned along with them when they spawn
naturally or due to chunk generation. This adds a new SpawnReason,
OCELOT_BABY, to handle this special case.
[Bleeding] Add new SpawnReason for silverfish. Adds 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.