Check null before grabbing metadata owning plugin. Fixes BUKKIT-4665

MetadataStoreBase throws a NullPointerException when passed a null value
for setMetaData. The intended behavior is to throw an
IllegalArgumentException. This commit changes the value's null check to
occur before referencing the owning plugin of a value.
Add missing materials to Step. Fixes BUKKIT-4074

When Minecraft 1.4.6 was released, Nether Brick texturing to steps
was added. Minecraft 1.5 added Quartz texturing to steps. When Bukkit
was updated to these version the textures for steps were not applied.

Currently it is not possible to set the texture of steps to quartz
or nether brick. This commit fixes that by adding the respective values
to the allowable materials list.
Fix missing closing bracket in addEnchantment. Fixes BUKKIT-4126

Prior to this commit the message would display as "...(given #, bounds
are # to #". This commit changes that by adding the missing bracket to
the end of the statement. This is strictly a visual error.
Use command block's world for /gamerule. Fixes BUKKIT-3274

In vanilla, gamerules are global, across all worlds. Maps created for
vanilla that use command blocks expect this behavior, which is broken
when they are placed on a world that is not the default world (world #0).

This commit changes that by using the command block's current world when
executing the command, forcing the game rules executed to be executed in
the world the command block is currently in.
Add source encoding to the maven compiler plugin.

This change adds the source encoding to the maven compiler plugin, which
will strictly enforce build consistency on multiple platforms and address
possible compilation issues on some of the source files. The source
encoding unintuitively is system-specified by default.
Deprecate magic values
Spigot
EMC POM Changes
Water flow not trigger chunk loads

Make BlockFromToEvent default cancel if the flow would trigger a chunk load.
PlayerDeathEvent.getItemsToKeep

Exposes a mutable array on items a player should keep on death
Add a call helper to Event
Precise timings
EntityShootBowEvent consumeArrow API
ItemStack isSimiliar ability to skip durability check
Expose commandmap
Inventory Meta API
Entity Serialization

add method to spawn an entity at a location if its not in any world (invalid)
Remove Invalidated Metadata

On reload, metadata will be cleared
Add force to spawn reasons
Add API for vehicle exit event reason