Use Provided Case for Non Existent Offline Players.

Fixes issues with using scoreboards to provide information via pseudo players being all lower cased.
Add obfuscation helper patch to assist update process.
Prevent crash from a ConversationTracker exception. Fixes BUKKIT-5436
Add skin forwarding support for BungeeCord.
Upstream merge
Add note about BungeeCord
Check for Blank OfflinePlayer Names - the internal representation does not allow them, so lets catch it early when the issue lies with the user.
Set shell prompt to $ when running the patch scripts, helps with speed on windows.
Fix arrows and fireworks not having their despawn counters ticked when inactive
Fix despawn rate to be >=
Fix Player Banning

This issue stems from the fact that Bukkit's API only allows a UUID to be banned, but Minecraft requires both a UUID and name. To fix this we modify the code to require a UUID or a name, or both. The correct fix would be expanding the API to be able to provide a name, however this would require plugin changes.
Check Skull canPlace - ensures skulls are only placed where they are supposed to.
Remove whitelist fix patch, pulled upstream & also slightly incorrect, userCache.a() does not perform a full lookup.
Fix EditBook Event
Allow non hidden update lock
Validate CraftSkull getOwner - prevents it from being called when hasOwner is false.
Print stack only when debug is enabled
Fix ban expire dates.
Correct Ban Expiration
Convert Horses owner to UUID