[B+C] Add TeleportCause to EntityTeleportEvent. Adds BUKKIT-4745

Based on PR by @Obliv

### The Issue:
EntityTeleportEvent does not have any information about teleport cause, while PlayerTeleportEvent does.

### Justification for this PR:
This standardizes the capabilities of teleport events between players and entities.

### PR Breakdown:
##### Bukkit
Added a teleport cause parameter to EntityTeleportEvent. Updated relevant calls to constructors in child classes.
##### CraftBukkit
Updated calls to EntityTeleportEvent and sub-events

### Testing Results and Materials:
This has not been tested as I need some help first.

### Relevant PR(s):
B-???? - https://github.com/Bukkit/CraftBukkit/pull/???? - Associated Bukkit PR
B-931 - https://github.com/Bukkit/Bukkit/pull/931 - Original PR

### JIRA Ticket: 
BUKKIT-4745 - https://bukkit.atlassian.net/browse/BUKKIT-4745