Add damage modifier API in EntityDamageEvent. Adds BUKKIT-347, BUKKIT-4104

This commit adds API for the enchantment, armor, potion and other
modifications to damage done to an entity. These damage modifiers are each
editable editable via a getter and a setter. This addition allows for more
accurate modification and monitoring of damage done to/by an entity, as it
displays the final damage done as well.
Replace getOnlinePlayers to provide a view. Adds BUKKIT-5668
Update Bukkit for Minecraft 1.7.10
Pulling all pending Bukkit-JavaDoc changes
Recalculate damage modifiers in event for old method. Fixes BUKKIT-5681

When we added the new API in EntityDamageEvent to give control over the
various things that modify the final damage done we caused a change in
behavior for users of the old #setDamage(double) method. Before changing
the damage would happen before the modifiers were calculated so they would
be based on the final damage value from the event. Now they are calculated
at the beginning so changing the damage does not change the modifiers.

To allow the old style and the new to coexist we now expose the vanilla
modifer calculations to the event in the form of Function objects. These
are used in #setDamage(double) to calculate the difference in the modifier
between the old damage and the new and apply this difference to the current
modifier. The difference is between the vanilla values for both damage
values and is applied on top of the event's modifier value as this should
make old and new API usage work together in a way that isn't surprising.
Add deprecated BukkitRunnable overloads in the scheduler. Adds BUKKIT-5752
Only loop through op players when tab completing /deop Fixes BUKKIT-5748

When tab completing /deop, a potentially large set of players is used for
finding suitable player names. This potentially large set of players can
cause performance concerns on servers. To fix this, only the set of
operators should be considered for the /deop tab completion where the
player set is much more relevant and follows suit with other commands
which employ "more specific" player sets when possible. This commit adds
this more efficient behaviour.
Rename Fish to FishHook. Fixes BUKKIT-3856

"Fish" is a badly named class to represent a fishing hook due to the
possibility (or lack of) that Minecraft may be getting fish entities.

This commit provides potential future compatibility by deprecating the
existing Fish class and moving the methods to a new class: FishHook.
Add ability to keep items on death via plugins. Adds BUKKIT-5724

When a player dies their inventory is normally scattered over the the area
in which they died. Plugins should be able to modify this behaviour by
defining whether or not the player's inventory will be dropped on the ground or
waiting for the player when they eventually respawn.

This commit adds the methods required to the PlayerDeathEvent for plugins
to be able to incorporate the behaviour mentioned as a simple boolean
flag.
Update JavaDocs regarding teleportation of entities. Fixes BUKKIT-4210

Up until Minecraft version 1.5 it was not possible to teleport entities
within vehicles. With the 1.5 update came the change in the Minecraft
teleportation logic to dismount before teleporting the entity, if
applicable.

This commit simply ammends the JavaDocs for the associated CraftBukkit
half regarding the action the teleportation methods will take before
completing a teleport.
Updated pom.xml and Readme for Glowkit.
Don't display blank help topics. Fixes BUKKIT-5623

Help topics previously would display nothing if there was no text defined.
This can cause communication problems to end users if they simply see a
blank area instead of some text to indicate status.

This commit solves the communication problem
Fix chat paginator wrapping words incorrectly. Fixes BUKKIT-5408

There are issues with the word wrapping calculations currently available.
They can be activated as follows:

- If 'lineLength - line.length() - word.length() == 0' then the 'word'
  will be appened to 'line' without a proper space between them.
  This can be triggered with the following: wordWrap("preciselytwenty-five
  chars and more!", 25);

- Color codes do not correctly wrap. A specific example is
  wordWrap(ChatColor.GOLD + "foo", 3);

This commit solves the issues described above and adds added unit tests to
ensure regression does not occur.
Improve whitelist command messages. Fixes BUKKIT-5427

The whitelist command's output is not very helpful to the user if there
are no whitelisted players or if the user tried to add/remove someone who
is already (not) on the whitelist.

This commit resolves the behaviour and provides better output to the user
for the actions described. This is purely cosmetic and does not adjust the
functionality of the whitelist.
Updated Material with new entries for 1.8.
Added MaterialData for Prismarine, Sand, and Sponge.
Added repository information to pom.
Add effects from 1.7
Add Effect.isDistanceIgnored for Wither spawn sound