Add TeleportCause to EntityTeleportEvent. Adds BUKKIT-4745

Split from GlowstoneMC/Glowkit#3
Original Bukkit PR: Bukkit/Bukkit#1002
Additional changes: None
Glowstone implementation: Not done

-----

Previously it was not possible to determine why a non-player entity has
teleported. This commit changes that so plugins are able to determine what
has happened.