Pulling all pending Bukkit-JavaDoc changes
Updated version to 1.5.1-R0.1 in pom.xml for BETA.
Updated version to 1.5.1-R0.2-SNAPSHOT for development towards next release.
Add Scoreboard API and Command. Adds BUKKIT-3776, BUKKIT-3834

The implementation is designed around having both a main scoreboard and
numberous plugin managed scoreboards that can be displayed to specific
players.

Plugin managed scoreboards are active so long as a reference is kept by a
plugin, or it has been registered as a player's active scoreboard. Objects
specific to a scoreboard remain active until unregistered (which remove a
reference to the owning scoreboard), but quickly fail if accessed
post-unregistration.
Refactor common metadata code into base class. Fixes BUKKIT-3624

Implementing the MetadataValue interface is significant work due to
having to provide a large amount of conversion stub methods. This commit
adds a new optional abstract base class to aid in implementation.
Improve speed and memory use of FixedMetadataValue. Fixes BUKKIT-1460

FixedMetadataValue currently just extends LazyMetadataValue with a value
that never changes. While this works it is a lot of unneeded overhead
that causes FixedMetadataValue to be a lot slower and use a lot more
memory than one would expect. To correct this we store the value directly
in FixedMetadataValue and override the the appropriate methods to use it.

Ideally we would modify FixedMetadataValue to no longer extend
LazyMetadataValue as this would give a very large memory savings. However,
this is not currently done for backwards compatibility reasons.
Don't cache metadata store disambiguations. Fixes BUKKIT-3841

The metadata system generates unique keys for metadata entries based on
the subject metadata is being applied to and the name of the metadata
being applied. It was assumed this would be an expensive operation so a
cache was put in place to ensure this was done as little as possible.

In reality this cache only has a benefit when you have a hit rate above
~90% and is otherwise much slower. As the implementation of the cache is
a hashmap of hashmaps it also uses a significant amount of memory which
is not worth it even for the performance increase with a high hit rate.

This commit simply removes the cache which results in speedups for most
cases and large memory savings.
Prevent classloader leak in metadata system. Fixes BUKKIT-3854

Metadata values keep strong reference to plugins and they are not
cleared out when plugins are unloaded. This system adds weak reference
logic to allow these values to fall out of scope. In addition we get
some operations turning to O(1) "for free."
Use utility method for team-join display. Fixes BUKKIT-3997

The method to make a string from a collection of strings already exists
and should be used when adding multiple players to a team.
Consider arguments to team leave properly. Fixes BUKKIT-3994

Two checks to argument length were changed to properly consider if the
sender is a player instead of an off-by-one logical error.
Consider first player name in leave command. Fixes BUKKIT-4051
Correct 1.5 material data. Fixes BUKKIT-4004, BUKKIT-3785
Fix off-by-one error in DyeColor. Fixes BUKKIT-3938
Pulling all pending Bukkit-JavaDoc changes
Updated version to 1.5.1-R0.2 in pom.xml for BETA.
Updated version to 1.5.1-R0.3-SNAPSHOT for development towards next release.
Spigot POM Changes.
Measure the duration of the entire timings run.
Improved Timings System

Enables "Timings on Demand" so you can enable/disable timings without server restart.
Tracks timings on sync events a plugin registers (Single and Repeating)
Tracks how many ticks a timed area has caused the server to lose due to taking too long.
Enables automatically pasting to paste.ubuntu.com so you can quickly review the results on aikar.co/timings.php
Add nag for bad plugins.