[B+C] Implement EnderSignalLaunchEvent; Adds BUKKIT-4572

The Issue
======

Currently there is no way to simply detect when an Ender Signal (or Eye of Ender) is sent into the world by player means. This causes issues for plugins that want to block this action or at least detect it for logging (or other) purposes.

Justification for this PR
========

With this addition plugins will be able to detect when an Ender Signal is launched into the world. Currently this can only happen by the player's hand therefore this event has a ```HumanEntity getShooter()``` method to represent the shooter. 

Plugins such as mine, AntiShare, will be able to use this event to do all sorts of actions. In my particular case this will add the ability for AntiShare to stop further sharing of items between creative and survival mode players by eliminating the infinite supply of Ender Signals that can be launched by creative mode players. This event will help prevent the issue of spreading Ender Signals within a server.

This event is cancellable to allow for plugins to block the action entirely. 

Testing Results and Materials
======

Working on it. Please stand by.

Relevant PRs
======

B-906 - https://github.com/Bukkit/Bukkit/pull/906 - The actual event object
C-906 - LINK HERE - The implementation of this event

JIRA Ticket
======

BUKKIT-4572 - https://bukkit.atlassian.net/browse/BUKKIT-4572


Other Example Implementations
=======

- Determining where Eye of Ender items are being sent (logging plugins)
- Changing direction of Ender Eye (not currently possible, maybe in the future)
- Stopping players from sending them (creative protection plugins)
- Flares/markers (more changing of location - not currently possible)