Updated version to 1.4.6-R0.4-SNAPSHOT for development towards next release.
Add experience methods for PlayerFishEvent. Adds BUKKIT-3348
Clarify dye and wool color datas in DyeColor. Addresses BUKKIT-2786

DyeColor used the wool data for getData(), which is very misleading based
on class name. The old method has been deprecated and replaced with
getWoolData() and getDyeData() for the appropriate types of data values.

The MaterialData classes Dye and Wool were updated appropriately,
especially Dye innapropriately using a DyeColor data value compensation.

Unit tests were added for the new methods, as well as the getColor on Dye
and Wool.
Switch DyeColor firework Colors. Fixes BUKKIT-3382

The firework colors were based on the respective wool data values. This
means the colors were in reverse order.
Added negative id check to Material.getMaterial(int). Fixes BUKKIT-3414
Negative id values would try to access the array out of bounds and throw an java.lang.ArrayIndexOutOfBoundsException.
Update Bukkit to Minecraft 1.4.7
Updated version to 1.4.7-R0.1 in pom.xml for Beta.
Updated version to 1.4.7-R0.2-SNAPSHOT for development towards next release.
[Bleeding] Add experimental support for entity portal traveling

EntityPortalEvent is called when an entity is about to portal to a
new location. This event is cancellable on top of being able to
change the exit location.

EntityPortalExitEvent is called when exiting the portal, allowing
for adjustment of the exit velocity.
Improve javadoc in 26 files.

Addresses:
BUKKIT-1643, BUKKIT-1868, BUKKIT-1846, BUKKIT-2632, BUKKIT-3196,
BUKKIT-3187, BUKKIT-3198, BUKKIT-3200, BUKKIT-3201 and BUKKIT-3417.
Don't try listing something that may not exist. Fixes BUKKIT-3471

The player name may not be provided, in which case the command will
fail hard.
Only use TravelAgent if supplied; Addresses BUKKIT-3466

If there is no TravelAgent assigned, it can not be used.
Fix invalid integers in spawnpoint command. Fixes BUKKIT-3509

getInteger returns min value on illegal number formats, so we change
behavior to throw an exception when requested.
Updated version to 1.4.7-R1.0 in pom.xml for RB.
Updated version to 1.4.7-R1.1-SNAPSHOT for development towards next release.
Fix ClassCastException for malformed plugin.yml. Fixes BUKKIT-3563

If the plugin.yml gets loaded but wasn't in the form of a map, the
server would crash. This safely checks to see if it can be cast,
throwing invalid description if it cannot.
Pulling all pending Bukkit-JavaDoc changes
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.