Implement Hopper block state and inventory methods. Adds BUKKIT-3749
Use name given to command block instead of "@". Fixes BUKKIT-3803
Implement Entity.isOnGround(). Adds BUKKIT-3787
Make CraftMinecartHopper work as InventoryHolder. Adds BUKKIT-3796
Implement InventoryPickupItemEvent. Adds BUKKIT-3798
Implement new cause versions of BlockIgniteEvent. Addresses BUKKIT-3609, BUKKIT-3656, BUKKIT-3657
Implement per-player Weather API. Adds BUKKIT-812
Only set player weather if a plugin requested it.

If the server changes the weather it will set the per-player weather
variable and future changes will not apply. We should only set this
variable when a plugin is requesting per-player weather and not when
the server it doing it.
Add /testfor command support to command block. Adds BUKKIT-3813
Only filter data on block items, not all items.
Pull Contributing Guidelines and Requirements into CONTRIBUTING.md
Add link to CONTRIBUTING.md in README
Remove point about squashing commits.
Validate Server method input. Addresses BUKKIT-3687

CraftServer methods that implement the Server interface will throw an
IllegalArgumentException if a method cannot operate on a null input
and given a null pointer.

This causes methods to fail early and identify that a plugin is
responsible for passing in an invalid argument. This will only
change the exception thrown, if there originally was a thrown
exception. This helps with hunting down legitimate problems
with CraftBukkit.
POM Changes.
Spigot changes.
Address BUKKIT-3286 by firing the inventory close event when a secondary container is closed due to the player entity being destroyed. This covers all edge cases such as server stop / player kick / player quit.
Update item merge logic
Include NibbleArray from mc-dev for diff visibility
Implement 'lightening' of NibbleArrays - only allocate buffers when non-trivial value Saving from 40-45% of memory use by chunk section data.

Finish up NibbleArray lightening work - use for Snapshots, reduce copies

Fix nibble handling with NBT - arrays aren't copied by NBTByteArray