Map org.bukkit.Sound to String values for sending to client.

This change was done to remove the internal sound names from the API.
Along with moving the internal names into CraftBukkit, a unit test was
added for any new sounds added in the API to assure they have a non-null
mapping.
Updated version to 1.3.2-R0.2 in pom.xml for Beta.
Updated version to 1.3.2-R0.3-SNAPSHOT for development towards next release.
Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549

An internal method for making the debug output for CraftScheduler's
async tasks was erroneously using the 'this' reference when the loop
should be referencing the current task.
Use this world instead of the one in the entity. Fixes BUKKIT-2315

In some situations an entity or tile entity can be added to the world but
have its own 'world' field be null or otherwise incorrect. As the entity
was added to this world to be ticked assume it actually is in this world.
Remove player from destroy queue when they go visible. Fixes BUKKIT-2071

If a plugin calls player.hidePlayer(other); then player.showPlayer(other);
in the same tick the other player will be added to the entity destroy queue
then a spawn packet will be sent. On the next tick the queue will be
processed and a destroy packet will be sent that renders the other player
invisible. To correct this we ensure the destroy queue is in sync with use
of the vanish API.
Allow data values on mushroom and mob spawner blocks. Fixes BUKKIT-2346

In 1.2.5 and older versions of CraftBukkit we allowed the use of data
values on bug mushroom and mob spawner blocks for use with plugins.
For the 1.3 update the mechanism for doing this was changed and I
accidentally used the wrong value when adding these, indicating that
they should not have data instead of our actual intent. This change
corrects this regression.
Update entity target data to reflect current AI status. Fixes BUKKIT-2280

The new AI system introduced by Minecraft 1.2 no longer relies on the
target field in the entity so it is frequently out of sync with what the
entity is actually doing. This modifies the AI goal to update the target
so our API can return the correct information.
Updated version to 1.3.2-R1.0 in pom.xml for RB.
Updated version to 1.3.2-R1.1-SNAPSHOT for development towards next release.
Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038

If two players (or a player and any other entity) are teleported to the
same location in the same tick they will both get added to the other's
destroy queue then have a new entity spawn packet sent. Next tick the
destroy queue will be processed and they will then be invisible to each
other. To prevent this situation we remove the entity from the destroy
queue when sending out a spawn packet for them.
Implement new scheduler API. Adds BUKKIT-836

The implementation for the new methods mimics the old methods. The final
call for the old methods now maps to the new methods with an additional
call to get id.
Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600

This change affects the old chat compatibility layer from an
implementation only standpoint. It does not queue the 'event' to fire,
but rather queues a runnable that allows the calling thread to wait for
execution to finish.

The other effect of this change is that rcon connects now have their
commands queued to be run on next server tick using the same
implementation.

The internal implementation is in org.bukkit.craftbukkit.util.Waitable.
It is very similar to a Future<T> task, but only contains minimal
implementation with object.wait() and object.notify() calls
under the hood of waitable.get() and waitable.run().

PlayerPreLoginEvent now properly implements thread-safe event execution
by queuing the events similar to chat and rcon. This is still a poor way
albeit proper way to implement thread-safety; PlayerPreLoginEvent will
stay deprecated.
Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602

CommandMap now contains the functionality for tab completion. This
commit replaces the vanilla implementation and simply delegates it to
the Bukkit API.
Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607.

The chat tab completion implementation also includes a sanity check to
assure type-safety in the list.
Updated version to 1.3.2-R2.0 in pom.xml for RB.
Updated version to 1.3.2-R2.1-SNAPSHOT for development towards next release.
Made books less powerful, though you should still read them!
Updated version to 1.3.2-R3.0 in pom.xml for RB.
Merge branch 'master' of git://github.com/Bukkit/CraftBukkit

# By EvilSeph (8) and others
# Via EvilSeph
* 'master' of git://github.com/Bukkit/CraftBukkit:
  Updated version to 1.3.2-R3.0 in pom.xml for RB.
  Made books less powerful, though you should still read them!
  Updated version to 1.3.2-R2.1-SNAPSHOT for development towards next release.
  Updated version to 1.3.2-R2.0 in pom.xml for RB.
  Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607.
  Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602
  Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600
  Implement new scheduler API. Adds BUKKIT-836
  Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038
  Updated version to 1.3.2-R1.1-SNAPSHOT for development towards next release.
  Updated version to 1.3.2-R1.0 in pom.xml for RB.
  Update entity target data to reflect current AI status. Fixes BUKKIT-2280
  Allow data values on mushroom and mob spawner blocks. Fixes BUKKIT-2346
  Remove player from destroy queue when they go visible. Fixes BUKKIT-2071
  Use this world instead of the one in the entity. Fixes BUKKIT-2315
  Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549
  Updated version to 1.3.2-R0.3-SNAPSHOT for development towards next release.
  Updated version to 1.3.2-R0.2 in pom.xml for Beta.
  Map org.bukkit.Sound to String values for sending to client.