[C+B] Make event for when a beacon gives a player a PotionEffect. Adds BUKKIT-4329

This code allows for players to control which effects are given to them by beacons. It provides an easier API than having to start using `getNearbyEntities()` from a beacon's location and start modifying the effects that they are receiving.  The event is able to be cancelled as well, preventing a beacon's potion effect from being given to a player.

Leaky Ticket https://bukkit.atlassian.net/browse/BUKKIT-4329