Only set skull profile if it is a player skull. Fixes BUKKIT-5605
Handle inventory max stack sizes even better. Fixes BUKKIT-5595

In 7e37cf96 we modified the container logic to handle custom max stack
sizes better and ensure the client stays in sync with this scenario. This
had the effect of sending an extra set slot packet for every inventory
click a player did which was not wanted. These extra packets also cause the
client to recalculate recipes which breaks the result slot for custom
recipes. To avoid the extra packets in general we now only send them if the
max stack is not the one we started with. In the case of a setting a custom
max stack size on a workbench this is still not enough so we also now send
another extra packet to make sure the result slot is always correct.
Handle chat packets correctly
Implement awake flag for bats. Adds BUKKIT-5606
Update CraftBukkit to use new YamlConfiguration encoding changes
Ensure we always log commands and log the right thing.

Waiting to log until after PlayerCommandPreprocessEvent makes the server
not log anything if the event is cancelled. It also makes the server log
what a plugin changed the command to instead of what the player actually
tried to run. As the point of the log is to have a record of every command
a player attempts to run these are both not desirable.
Updated version to 1.7.9-R0.1 in pom.xml for Beta.
Updated version to 1.7.9-R0.2-SNAPSHOT for development towards next release.
Fix polarity of Bat.isAwake() and Bat.setAwake(boolean). Fixes BUKKIT-5624
Rework mob item dropping on death. Fixes BUKKIT-5625

After the changes in d611cff2 we started including a mob's equipment when
calling EntityDeathEvent so plugins can access this data. However, the
changes to enable this triggered a bug that makes skeletons and pig zombies
no longer drop equipment because they handle this differently than the rest.
On top of this we don't handle dropping equipment for mobs that cannot
pick up items in vanilla even though vanilla does drop equipment for them
if you summon them with it. We also do not include a horse's inventory
in the event so they drop their saddle, armor, chest, and chest contents
with no way for a plugin to control this.

To solve this issues we revert mob item dropping back to vanilla logic
and instead just capture all their drops in the method they all call to
spawn them into the world. We also move horse inventory dropping so it
happens at a time when we're capturing these drops. With these changes
all items mobs drop on death should now be included in the event and
we have less diff to worry about for future updates.
Fix ItemStack state during BlockPlaceEvent. Fixes BUKKIT-5632
Handle null targets in target event. Fixes BUKKIT-5635
Use UUIDs in CraftPlayer equals and hashCode methods. Fixes BUKKIT-5634
Some assumptions are better than others.
Improve ItemStack filtering.
Add special case for handling place event with lilies. Fixes BUKKIT-5641
Updated version to 1.7.9-R0.2 in pom.xml for Beta.
Updated version to 1.7.9-R0.3-SNAPSHOT for development towards next release.
Don't check unload queue before ticking things anymore.

In commits 71a238ee and c8591397 we added checks while ticking to ensure
we never ticked anything in a chunk meant to be unloaded. We did this to
prevent these chunks being removed from the unload queue and leaked.
However, this causes a ridiculously large number of lookups on the queue
for a somewhat rare occurance. We also now have the chunk GC which will
take care of these leaked chunks when they do happen. With this in mind
we now remove these checks which removes almost all uses of the
LongHashSet backing the unload queue.
Avoid checking for loaded chunks for lighting and entity ticking.

When a chunk is loaded the server tries to ensure it has its initial light
calculations done before sending it to the player. When ticking entities
the server tries to ensure the entity does not walk into an unloaded chunk.
To accomplish these the server checks a one chunk radius around the chunk
to be lit or a two chunk radius around the chunk the entity is in. These
lookups happen every tick even though their result is unlikely to change
that often. To reduce the cost of these checks we replace them with a
system to keep track of what neighbor chunks a chunk has loaded and update
it when chunks load or unload which is a much less frequent action. On a
server with ten players this change removes about 100,000 calls a tick to
LongObjectHashMap's containsKey method.