Add an EntityDespawnEvent. Fixes BUKKIT-5645

Split from GlowstoneMC/Glowkit#3
Original Bukkit PR: Bukkit/Bukkit#1070
Additional changes: None
Glowstone implementation: Not done

-----

Previously it was not possible to determine when an entity despawns for
reasons other than death. This made it difficult for plugins to determine
things like despawning due to distance or other causes, and therefore may
still track those now-missing entities.

This commit allows plugin authors to determine what happened to entities
when they despawn for their various reasons, therefore making plugin
developer's lives a little bit easier.