Add Location.setDirection(Vector). Adds BUKKIT-4862

This commit adds an additional method to Location to set the direction of
facing. Included are a set of unit tests that ensure the consistency of
getDirection and setDirection using a set of cardinal directions and
arbituary data points.

Javadocs were also added to pitch and yaw methods that explain the unit
and points of origin.
POM Changes
Measure Timings Duration
Timings Paste Command
Enchanced Timings
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.
Fix Plugin Message API Disconnects