Only loop through op players when tab completing /deop Fixes BUKKIT-5748

When tab completing /deop, a potentially large set of players is used for
finding suitable player names. This potentially large set of players can
cause performance concerns on servers. To fix this, only the set of
operators should be considered for the /deop tab completion where the
player set is much more relevant and follows suit with other commands
which employ "more specific" player sets when possible. This commit adds
this more efficient behaviour.
Rename Fish to FishHook. Fixes BUKKIT-3856

"Fish" is a badly named class to represent a fishing hook due to the
possibility (or lack of) that Minecraft may be getting fish entities.

This commit provides potential future compatibility by deprecating the
existing Fish class and moving the methods to a new class: FishHook.
Add ability to keep items on death via plugins. Adds BUKKIT-5724

When a player dies their inventory is normally scattered over the the area
in which they died. Plugins should be able to modify this behaviour by
defining whether or not the player's inventory will be dropped on the ground or
waiting for the player when they eventually respawn.

This commit adds the methods required to the PlayerDeathEvent for plugins
to be able to incorporate the behaviour mentioned as a simple boolean
flag.
Update JavaDocs regarding teleportation of entities. Fixes BUKKIT-4210

Up until Minecraft version 1.5 it was not possible to teleport entities
within vehicles. With the 1.5 update came the change in the Minecraft
teleportation logic to dismount before teleporting the entity, if
applicable.

This commit simply ammends the JavaDocs for the associated CraftBukkit
half regarding the action the teleportation methods will take before
completing a teleport.
POM Changes
Spigot Timings

Adds performance tracking timings all around the Minecraft Server, and improves the usability of the /timings command

Plugins can track their own timings with CustomTimingsHandler
Add PlayerItemDamageEvent
BungeeCord Support
Add Arrow API
Add Particle API
Define EntitySpawnEvent and SpawnerSpawnEvent

Defines EntitySpawnEvent and SpawnerSpawnEvent. Adds BUKKIT-267 and BUKKIT-1559
Entity Mount and Dismount Events
Update Depends

- All of these changes have been reviewed to be binary compatible and in general contract compatible with previous versions of the libraries.
InventoryClickEvent getClickedInventory

Add InventoryClickEvent.getClickedInventory. Adds BUKKIT-4495
Plugins currently have to do the logic themselves on the raw slot ID
in order to determine the inventory clicked. This provides the logic for plugins to
readily identify which inventory was clicked.
Added getAllSessionData() to the Conversation API.
Catch Conversation API Errors
Player Collision API
Expand Boolean Prompt Values
Add Getter for Entity Invulnerability
Add respawn API.