Fanciful Chat API

Provides new 1.7 chat features

Initial Credits to http://forums.bukkit.org/threads/lib-fanciful-pleasant-chat-message-formatting.195148/
But did a lot of bug fixing on it.
Add EntityEffectAddedEvent
Fire EntityTargetLivingEntityEvent for GoalNearestAttackableTarget

If cancelled, move to next in list
Start currentTick at 0

Otherwise time will overflow and crash
World.getNearbyEntities API

Adds much needed API for getting entities by location and not an entity base point.
Allow plugins to set spawn reason
Disable UUID conversion and do it on login
Misc Utils

Adds Misc Util functions to be used by future commits
LivingEntityArmorProtectEvent

To control if armor should protect entity, how much if so, and how much item damage to give.
GetArmorProtectionValueEvent

Lets plugins control how much protection value an item should provide.

Allows dynamic protection values and nullifying ability.
EntityKnockbackEvent

Control knockback power of entity attacks
ZombieReinforcementEvent

Control when a zombie reinforcement event should occur (modify chance)
also makes it run on all difficulty levels
Add LivingEntity.getLoot()

Get the common loot this entity might drop on death.
Cancel Vehicle/Passenger if spawn is cancelled

Otherwise lots of chickens
All blocks extinguish at same rate

Previously "Flammable" blocks would burn for ages, this makes them burn out the same as non flammable.
This is so that blocks that have ignite/burn events cancelled will actually burn out.
Store EntityMetaData by EntityId

Currently unloading then reloading an Entity is making the TempMetaData persist across these transitions.

This makes hard to use TempMeta to know if something needs to be initialized or not (listeners) and is carrying
over old listeners to the old entity that no longer exists.

Using the EntityId + world name is guaranteed unique per server session and therefor will be unique to the living entity's object.
Don't throttle block place
Allow all horses to be leashed
Improve the AutoSave mechanism

Only save modified chunks, or chunks with entities after 4 auto save passes
Move WorldSaveEvent to proper location

calling CraftWorld.save() currently does not call WorldSaveEvent, and WorldSaveEvent could fire on worlds that have saving disabled.

New location will always fire during a world save and only during an actual save.