Check that a vehicle is a Vehicle before casting. Fixes BUKKIT-4749

When an entity is being moved as the passenger of an entity from one
entity to another, a VehicleExitEvent is fired, but it is assumed that the
current entity is a Vehicle. However, entities can be passengers of more than
just Vehicles, which causes a ClassCastException to be thrown.

This commit fixes the issue by checking that the current entity's vehicle's
bukkitEntity is an instance of Vehicle before casting it to Vehicle.
Properly set persistence flag for bred animals. Fixes BUKKIT-4751
Correct location of fire from lightning strikes. Fixes BUKKIT-4707

Previously fires spawned by lightning strikes were in the wrong locations.
This introduced the possibility of having blocks replaced when they should
not be.

EntityLightning now uses the correct locations as defined to spawn the
fires when needed.
Update and add new sound mappings. Fixes BUKKIT-4756