Update PotionEffects on player death. Fixes BUKKIT-2673

On player death player PotionEffects need to be updated so that a player's
invisibility and other effects are removed, otherwise they will persist
after a respawn. This is a carry-over from our use of persistent player
entities.
Prevent health from wrapping around.
Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707
Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707
Add default DifficultyCommand. Partially fixes BUKKIT-2671
Remove invalid tab completions from DefaultGameModeCommand as player names are not an accepted parameter.
Add default WeatherCommand. Partially fixes BUKKIT-2671
Drop skulls like every other block. Fixes BUKKIT-2678

Instead of having a special case for skulls just use the normal logic for
breaking a block. This avoids issues when interacting with API.
Fix bug preventing non bed-reliant spawns from being successfully set. Fixes BUKKIT-2708
Expose setBedSpawnLocation with force option. Adds BUKKIT-2709
Add default SpawnpointCommand. Partially fixes BUKKIT-2671
Get skull data before destroying block. Fixes BUKKIT-2723

Skull blocks store their type in a tile entity and use their block data
as rotation. When breaking a block the block data is used for determining
what item to drop. Simply changing this to use the skull method for getting
their drop data is not enough because their tile entity is already gone.
Therefore we have to special case skulls to get the correct data _and_ get
that data before breaking the block.
Revert FIREBALL being renamed to LARGE_FIREBALL
Revert changing EntityType.FIREBALL to LARGE_FIREBALL
Update ExpCommand with levels support. Fixes BUKKIT-2683 and partially fixes BUKKIT-2671
Expose API for giving and taking experience levels for use with ExpCommand's new behaviour with Minecraft 1.4. Adds BUKKIT-2739
Update map cursors to reflect 1.4 changes. Fixes BUKKIT-2740
Clear
[Bleeding] Check for player validity in spawnpoint command. Fixes BUKKIT-2742
Revert "Clear" commit, was not meant to be pushed.

This reverts commit bdf5d326f5910993c1f7e48b4409f7b0d53c1926.