Spigot Timings

Overhauls the Timings System adding performance tracking all around the Minecraft Server
Fix Mob Spawning Relative to View Distance
Handle Null Tile Entities
Entity Activation Range

This feature gives 3 new configurable ranges that if an entity of the matching type is outside of this radius of any player, will tick at 5% of its normal rate.

This will drastically cut down on tick timings for entities that are not in range of a user to actually be "used".
This change can have dramatic impact on gameplay if configured too low. Balance according to your servers desired gameplay.
Metrics
PlayerItemDamageEvent
Faster UUID for entities

It is overkill to create a new SecureRandom on each entity create and then use it to make a new Entity ID for every entity instance created. Instead we will just use a pseudo random UUID based off the random instance we already have.
Prevent NPE in CraftSign

This commit prevents the constructor of CraftSign throwing an NPE when it cannot get the sign tile entity. Instead it will fallback to a 4 empty lined sign, and not try to do anything to those lines on .update().
Entity Tracking Ranges

This will let you configure how far to track entities in range from players, so that the entity does not render on the client if out of this range.
This has multiple benefits:

1) Less bandwidth. Not sending update packets for entities that are not even close to a player, or even close enough to clearly see.
2) Less lag by maps in item frames - Default range is 160 blocks... Many players can track that item frame and cause lag and not even see it.
3) Less lag in general - Less work for the server to do
4) Less client lag - Not trying to render distant item frames and paintings and entities will reduce entity count on the client, which is major for shop/town worlds which may use tons of item frames.
Limit Custom Map Rendering

The default CraftBukkit render sequence for maps is ridiculously slow. By only using it when a custom renderer has been added (rarely in most cases), we can fallback to the Vanilla renderer for general usage. This leads to a much higher effiency overall, especially if no plugins are rendering such maps.
Enable Improved Ping Sending
Thread Naming and Tweaks

Removes the sleep forever thread and adds useful names for debugging to all staged thread files.
Close Unloaded Save Files
Remove -o Option

Serves no purpose other than to confuse users.
Recipe Deconstruction

Some non API methods contributed by Asphodan to allow recipe deconstruction.
Implement Arrow API
Hopper Cooldowns
Prevent Shutdown Hang

Prevents server hanging if players disconnect during the shutdown sequence.
Implement SpawnerSpawnEvent.

Adds BUKKIT-267
Firework Meta Crash Fix