Add Player.spigot().getFishingHook() API
Track TNT Source Block

This patch will keep track of the exact source block location that TNT was spawned from.
This will either be:
1) The block the TNT was placed and then ignited on
2) The the top most parent block a chain reaction of TNT was placed from
3) The Dispenser block that fired TNT
4) The block a plugin spawned TNT came from

Useful for storing who is likely responsible for igniting TNT.
Improvements to Player Lookup

Minecraft and CraftBukkit both use Arrays to store online players,
and any time a player needs to be looked up by name or UUID,
the system iterates all online players and does a name or UUID comparison.

This is very ineffecient and can reduce performance on servers with high player count.

By using a map based approach for player lookups, player lookup should
be consistent in performance regardless of how many players are online.
Only refresh abilities if its changed
Fix furnace bug
Fix Guava 17
Accept the EULA

Starlis LLC, the owner of Empire Minecraft, accepts the Minecraft EULA with this commit.
Add API to prepare a plugin spawned Entity before added to world

This will enable configuring Metadata before spawn events and packets are sent to the client.
Convert Holograms to Armor Stands for 1.8 clients

Lets Holograms work on 1.7 and 1.8 using 2 diff types
Configurable Keep Spawn Loaded range per world

This lets you disable it for some worlds and lower it for others.
It also bounds it to the view-distance, to not load more than needed like it currently does.
Improve Network Manager packet handling

Removes an unnecessary "peek at head of queue", and also makes the number of packets
processed per player per tick configurable, so larger servers can slow down incoming processing.
Limit damage of EntityPlayer memory leaks

If a plugin leaks EntityPlayer references by storing Player objects and never cleaning them up,
then the server will leak a ton of memory by buffering up packets into the outgoing queue that will
never be processed. These packets themselves then hold on to lots of other references, causing massive leaks.

This change does not prevent plugins from leaking EntityPlayer references, but will drastically reduce the impact
of the bug to the level one would expect of a Minecraft Server of memory leaks anyways.
Update AntiXray to Timings v2
Update Entity Activation Range to Timings v2
Improve the Spigot Tick Loop

Improves how the catchup buffer is handled, allowing it to roll both ways
increasing the effeciency of the thread sleep so it only will sleep once.

Also increases the buffer of the catchup to ensure server stays at 20 TPS unless extreme conditions
Timings v2
Fix TPS measurement and add getTPS API

Previous implementation did not calculate TPS correctly.
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable

Thanks to @chickeneer for the math wizardry for figuring this out!
Ensure commands are not ran async

Plugins calling Player.chat("/foo") or Server.dispatchCommand() could
trigger the server to execute a command while on another thread.

These commands would then process EXPECTING to be on the main thread, leaving to
very hard to trace concurrency issues.

This change will synchronize the command execution back to the main thread, causing a
big slowdown in execution but throwing an exception at same time to raise awareness
that it is happening so that plugin authors can fix their code to stop executing commands async.
Exterminate the chickeneer - EMC-610

Wipe out chickens when the Jockey is killed.
Add Async Chunk Load API