Implement API for dealing with player UUIDs. Adds BUKKIT-5071
Store last known player names in preparation for name changing
Add equals for CraftInventory objects. Adds BUKKIT-4110

When working with inventories you regularly end up with different
Inventory objects that have the same underlying Minecraft inventory.
Currently, even those these point to the same thing, they are not
considered equal. With this commit comparing any Inventory object that
represents the same inventory will result in equals(Object) returning
true.
Add player unique ID to (Async)PlayerPreLoginEvent. Adds BUKKIT-5108
Add method to send fake sign updates to players. Adds BUKKIT-2300
Update CraftBukkit to Minecraft 1.7.8
Use fetched GameProfile for getOfflinePlayer(String)

When getting an OfflinePlayer by name we lookup their UUID and then
use that to fetch the OfflinePlayer. If the player has not played on
this server before the resulting OfflinePlayer will return null for
getName(). As this is unintuitive we now create the OfflinePlayer directly
using the profile we looked up and make OfflinePlayer prefer that data.
Added BlockTNT + EntityMinecartTNT for diff visibility.
Improved explosives.