Add BlockDaylightDetector from mc-dev for diff visibility
Add missing calls to BlockRedstoneEvent. Adds BUKKIT-3926

This adds calls to BlockRedstoneEvent for the new daylight sensor and
trapped chest blocks. Note that the redstone level for trapped chests
cannot be modified, as it is based on the number of players currently
viewing the chest's inventory.
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 ScoreboardServer from mc-dev for diff visibility
Add a WeakCollection utility class.

This class is designed to be an invisible layer between a normal collection,
and one that silently loses entries because they are only weakly referencable.
Some operations have additional overhead to be semantically correct, but it
maintains the equals contract for all entries, as opposed to identity.

It does not support the equals or hash code method as it cannot easily have
the transitive and commutative properties.
Implement Scoreboard API. Adds BUKKIT-3776

This implementation facilitates the correspondence of the Bukkit Scoreboard
API to the internal minecraft implementation.

When the first scoreboard is loaded, the scoreboard manager will be created.
It uses the newly added WeakCollection for handling plugin scoreboard
references to update the respective objectives. When a scoreboard contains no
more active references, it should be garbage collected.

An active reference can be held by a still registered objective, team, and
transitively a score for a still registered objective. An internal reference
will also be kept if a player's specific scoreboard has been set, and will
remain persistent until that player logs out.

A player's specific scoreboard becomes the scoreboard used when determining
team structure for the player's attacking damage and the player's vision.
We compile for 1.5
Handle large chests correctly for hopper events. Fixes BUKKIT-3979

In commit 7710efc5f9 we corrected the handling of large chests as the
destination for hoppers moving items but did not apply the same fix for
large chests being the source or for droppers. This commit updates these
to have the same fix.
Make auxiliary worlds use the main scoreboard. Addresses BUKKIT-3984

When a world is created using our API, it does not use secondary world
server and will maintain a reference to its own scoreboard. In vanilla,
this is not an issue as there is only ever one world.

Similarly to maps, an overwrite to the scoreboard reference has been
added for when another world has been created.

This should also address BUKKIT-3982 and BUKKIT-3985
Refactor EntityDamageEvents. Adds BUKKIT-1944 & BUKKIT-3684
Implement PlayerBookEditEvent. Adds BUKKIT-1995