Add PlayerItemConsumeEvent. Adds BUKKIT-2349
Test PluginManager.removePermission

Static methods are death to testability.  However, irrelevant static
methods can be negotiated with until a later time in which they can be
removed.  When instantiating a new Permission object, static calls are
made to the Bukkit class during a recalculatePermissibles logic path.
This recalculatePermissibles call should probably be moved
appropriately, but until the time such testing can be accomplished
itself, these tests work around that situation by simply verifying the
static Bukkit server references are satisfied since what is called as
a result is irrelevant currently.

This commit also updates a few other tests for PluginManagerTest to
work towards the standard of using the Hamcrest unit testing library.
Convert name to lower case for removePermission; Fixes BUKKIT-3726

Permissions are stored as lower case names and referenced as such in all
appropriate methods but removePermission. This changes removePermission
to also convert names to lower case to be consistent with the rest of
the API.
Removed superfluous recalculation call; Fixes BUKKIT-3728

The permission attachment interface provides two methods each for setting
and unsetting permissions. Each one also provides an extra call to the
recalculatePermissions() method on the permissible, which degrades
performance.

This commit removes the duplicate call to recalculate permissions.
Update Bukkit for Minecraft 1.5
Use proper naming convention for boolean methods.
Merge branch 'master' of https://github.com/Bukkit/Bukkit into IMC