Make skulls pretend to only use names like before 1.7.8.

Any new API here needs more thought, skulls require a name but OfflinePlayer
is not guaranteed to have one. There is a Mojang approved way to get a
complete profile from a name but not from a UUID so for now just pretend
this still only uses names.
Make bans pretend to use names like before 1.7.8.

Bans require a name and UUID but our API only allows for a single string
identifier for a ban entry. Until this is sorted out go back to the old
name based setup since we can always get a UUID given a name.
Handle expired bans correctly. Fixes BUKKIT-5541
Update CraftBukkit to Minecraft 1.7.9
Handle profiles in SkullMeta, they don't store a string anymore.
POM Changes
mc-dev imports
Skeleton API Implementations
Obfuscation Helpers
Spigot Configuration
Better Chunk Tick Selection
Crop Growth Rates
More Efficient Chunk Save Queue
Merge tweaks and configuration

This allows the merging of Experience orbs, as well as the configuration of the merge radius of items. Additionally it refactors the merge algorithm to be a better experience for players.
LongHash Tweaks
Async Operation Catching

Catch and throw an exception when a potentially unsafe operation occurs on a thread other than the main server thread.
View Distance

This commit allows the user to select per world view distances, and view distances below 3. Be wary of the issues selecting a view distance of 1 or 2 may cause!
Compressed Nibble Arrays

Implement 'lightening' of NibbleArrays - only allocate
 buffers when non-trivial value Saving from 40-45% of memory use by chunk
 section data.

Finish up NibbleArray lightening work - use for Snapshots, reduce copies

Fix nibble handling with NBT - arrays aren't copied by NBTByteArray
Sync Free Chunk Reference Cache
Improved Timings System

Tracks nearly every point of minecraft internals and plugin events to give a good quick overview on what is causing TPS loss.