Fix PlayerFishEvent not properly cancelling. Fixes
 BUKKIT-5245,BUKKIT-5396

PlayerFishEvent event states are not properly being cancelled,
the FishingHookEntity being deleted when the event is cancelled,
thus making the event happen. The event states of CAUGHT_ENTITY,
CAUGHT_FISH, FAILED_ATTEMPT, IN_GROUND must keep the
EntityFishingHook alive in order to cancel the event.
Removed the entity despawn lines when event is cancelled
and added a cancelled action for FAILED_ATTEMPT state.
Properly cancel fishing event. Fixes BUKKIT-5396

Previously, when cancelling a PlayerFishEvent with State.FISHING, the next
fishing attempt would automatically result in a new PlayerFishEvent with
State.FAILED_ATTEMPT because the player's hooked entity was not properly
cleared. This ensures that the player's hooked entity value is set to null so
that the next attempt will result in the proper state being called.