Update CraftBukkit to Minecraft 1.5.2
Fix things using wall time running too fast. Fixes BUKKIT-4155

When converting things in Minecraft to use wall time instead of ticks I
realized we'd run into integer division rounding issues and could have
updates that end up counting as zero ticks. To compensate for this the
code ensures we always process at least one tick. However, every time we
end up with zero ticks the next time we have an extra tick due to rounding
the other way with the leftovers. This means we are going far too fast and
should not have this at least one tick logic at all.

On top of this some potions rely on the number of ticks they run and not
just the amount of time they last and so potions were put back to running
with ticks entirely.
Revert "Add delay to hopper even if it doesn't do anything."

This reverts commit f5388e8f94e2cbab76c2255fd872c289e83100a0.
Always process movement for vehicles and passengers. Fixes BUKKIT-4142

As an optimization we don't do any movement processing on entities that
have not moved. However, players in minecarts trigger this condition when
the minecart is moving on its own. This causes issues with things that rely
on player collision like tripwires. To correct this and any future related
issues we always handle movement for passengers and their vehicles even
if one of the two hasn't moved since they are linked.
Implement command tab completion in the console. Adds BUKKIT-4168

Even though JLine provides an API for tab completion, there was still now tab
completion for console commands.
This commit implements tab completion in the console by providing the
ConsoleReader with a Completer implementation.