Persistence isn't just animals. Fix BUKKIT-3105

Also set to this value if the persistence hasn't been updated
Don't run command blocks in empty worlds. Fixes BUKKIT-3094
Refactor all OBC, libs, and NMS into versioned packages.

org.bukkit.craftbukkit and net.minecraft.server will now include the
minecraft version in the package name. As the internal implementations
are known to change dramatically, this refactor reduces the strain on
support requests due to version mismatching.

org.bukkit.craftbukkit.libs will also have version numbers for each
imported set of packages. These are not dictated by the minecraft
version number. This is done to prevent future incompatibilities.
Not enough testing went into this, you can't have packages start with numbers.
Implement API for wolves collar color. Adds BUKKIT-3109
Fix "Commands Only" chat flag. Fixes BUKKIT-2238

Thanks for the commit @mrapple
Add the ability to launch WitherSkulls. Fixes BUKKIT-3106
Use shooter constructor for Fireballs. Fixes BUKKIT-3121

Fixes fireballs exploding in the shooter's face and not having a shooter for the projectile. (Two birds with one stone!)
Provide a faster way to get a location. Adds BUKKIT-3120

Currently when a plugin wants to get the location of something it calls
getLocation() which returns a new Location object. In some scenarios this
can cause enough object creation/destruction churn to be a significant
overhead. For this cases we add a method that updates a provided Location
object so there is no object creation done. This allows well written code
to work on several locations with only a single Location object getting
created.

Providing a more efficient way to set a location was also looked at but
the current solution is the fastest we can provide. You are not required
to create a new Location object every time you want to set something's
location so, with proper design, you can set locations with only a single
Location object being created.
Update entity state correctly when marked as persistent. Fixes BUKKIT-3123

When a mob is marked with the persistent flag (animal or anything with
setRemoveWhenFarAway(false)) the entire block of code for checking if they
should be despawned is skipped. However, one part of this code updates the
mob state if a player is close enough to them. It turns out this state is
used by the AI system to decide if the mob should move around randomly or
not. To stop mobs from being frozen in place we now update this state if
the persistent flag is set as well.
Correctly shoot arrows with the spawnArrow Method. Fixes BUKKIT-3116
[Bleeding] Fix NPE in getBedSpawnLocation. Fixes BUKKIT-1949
Add SlotFurnaceResult for diff visibility
Implement FurnaceExtractEvent. Adds BUKKIT-2114
Add isSolid() tests for each material
[Bleeding] Fix NPE with a null bedSpawnLocation. Fixes BUKKIT-1500
Pass null help values values as empty strings to HelpTopics

Fixes BUKKIT-2618 and BUKKIT-2561
Only display help aliases when there are aliases. Fixes BUKKIT-1621
[Bleeding] Correct getEyeHeight value. Fixes BUKKIT-3130
Add EntityEquipment API. Adds BUKKIT-3103

Adds:
- Getting/Setting equipment
- getting/setting drop rates
- getting/setting ability to pick up items
-- As an added feature, players with this flag start off with a canceled PlayerPickupItemEvent