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.