Implement banning API. Adds BUKKIT-3535

Previously no implementation existed to access various additional
information fields regarding bans. This implementation expands on the
information outlined in the sister Bukkit commit to provide access to
the Minecraft implementation of the ban system.

This implementation of the banning API contains 2 new classes which
provide access to the internal workings of the built-in banning
system within Minecraft.

The CraftBanEntry class simply supports the representation of an internal
Minecraft BanEntry object. The data that may be modified within this new
object must be manually saved to the list contained within the
CraftBanEntry using it's save() method.

The CraftBanList class supports the representation of an internal
Minecraft BanList object through proxy methods. These methods do
validation on the passed objects where needed to ensure safe input to the
backed Minecraft objects.

These changes additionally re-route the existing banning API to the newer,
more detailed, system. Functionality prior to this change still behaves
as documented by the contract defined by the methods changed.
[Bleeding] Implement Mojang command fallback system. Adds BUKKIT-5385
Match old alias behavior when migrating.

Previously the alias system would pass all arguments from the alias
to its command(s) implicitly. The new system requires arguments to be
explicitly passed so server owners can have more control over where and
how they are passed. To ensure this isn't a breaking change during the
migration from bukkit.yml to commands.yml we now add the $1- argument
to the alias commands to match the previous behavior.
Readd BlockPlaceEvent for half slab to full block. Fixes BUKKIT-5390
Add method to forget callbacks in AsynchronousExecutor
Handle removing entity while ticking. Fixes BUKKIT-1331

If a plugin causes an entity to be removed from the world while the
world is ticking entities the ticking loop gets out of sync and fails due
to trying to go beyond the end of the entity array. To ensure this doesn't
happen we store the loop position as a field so we can fix it up in the
entity remove method just like the tick method does when it removes an
entity.
Readd diff missed in the 1.7 update.
Hide message from connection throttle on startup. Fixes BUKKIT-5403
Rename Minecraft command permission nodes to meet fallback spec.
Add PlayerSelector.java for diff visibility.
Ignore player selectors if not a Command Block.
Update/improve configuration documentation.
Check if entity is in list before decrementing. Fixes BUKKIT-5404
Updated version to 1.7.2-R0.3 in pom.xml for Beta.
Updated version to 1.7.2-R0.4-SNAPSHOT for development towards next release.
Remove chunks from queue if we don't need them anymore.
Adds the ability to look up players by UUID. Adds BUKKIT-5071

This commit adds the ability to look up a player by their uuid by calling
Server.getPlayer(UUID).  This is necessary for plugins which use
persistent player data.  Plugins must now store the player's UUID instead
of user name, so they can keep track of user data across username changes,
which means a method for looking up players by their UUID is necessary to
compliment the name based lookup.