Convert data types during server.properties migration (fixes #392).
Added player visibility API (closes #121).

Players are hidden fron another player's tab list and entity updates.
Also renamed other canSee methods to canSeeChunk and canSeeEntity.
Removed TextWrapper in favor of the client word-wrapping.

Formatting is still a little awkward. When new-style formatting is added
the old-style formatting can be properly converted, fixing any weirdness.
Checkstyle additions and matching style fix.
Show entity held item and equipment to players (fixes #164).
Added query support (closes #377).
Interpret world seed as number if possible (fixes #427).
Fetch UUIDs from Mojang if needed (fixes #227, fixes #365).

UUIDs are only fetched if online mode or proxy support is enabled.
Additionally fixes problems when player data files are missing a last
known username.
Fixed or added several broken inventories.

Added GlowInventory#getRawSlots() to handle a protocol special case.
Changed TEContainer to take an inventory rather than an inventory type.
Adds or fixes enchantment tables, anvils, brewing stands, furnaces,
workbenches, dispensers, droppers, and hoppers.
Added ender portal support (see #325).

Adds awardAchievement variant which only awards the achievement if its
parent has already been awarded. Fixes some desyncs with world switching.
Implemented basic damage functionality, including drowning.
Fixed color wrapping by converting flat messages to json.
Fixed not being able to place blocks inside snow.
Completely obliterate rogue threads on exit (fixes #179).

The shutdown monitor thread is now more thorough about killing the threads
it finds, and will still terminate even if a thread could not be killed.
Added 1.8 crafing recipes (see #314).

4x red sand -> 1x red sandstone
4x red sandstone -> 4x smooth red sandstone
2x red sandstone slab -> 1x chiseled red sandstone
2x stone bricks slab -> 1x chiseled stone bricks
2x cobblestone, 2x quartz -> 2x diorite
4x diorite -> 4x polished diorite
4x granite -> 4x polished granite
4x andesite -> 4x polished andesite
2x dirt, 2x gravel -> 4x coarse dirt
3x red sandstone -> 6x red sandstone slab
bunch of things -> rabbit stew
4x rabbit hide -> 1x leather
4x oak plank, 2x stick -> 3x oak fence
fences: spruce, birch, jungle, acacia, dark oak
2x oak plank, 4x stick -> 1x oak fence gate
fence gates: spruce, birch, jungle, acacia, dark oak
doors: oak, spruce, birch, jungle, acacia, dark oak
6x iron ingot -> 3x iron door
4x iron ingot -> 1x iron trap door
7x stick, 1x stone slab -> 1x armor stand
6x red sandstone -> 4x red sandstone stairs
1x stone brick, 1x vine -> 1x mossy stone brick
1x cobblestone, 1x vine -> 1x mossy cobblestone
1x diorite, 1x quartz -> 1x granite
1x diorite, 1x cobblestone -> 1x andesite
9x slime ball -> 1x slime block
1x slime block -> 9x slime ball
furnace: stone brick -> cracked stone brick
4x prismarine shard -> prismarine
9x prismarine shard -> prismarine brick
8x prismarine shard, 1x ink sac -> dark prismarine
5x prismarine crystals, 4x prismarine shard -> 1x sea lantern
furnace: rabbit -> cooked rabbit
Added RedundantModifier checkstyle rule.
Implemented buckets.
Implemented basic farming support.

Added placement and interact handling for hoes, wheat, melons, pumpkins,
nether warts, carrots, potatoes, and cocoa beans. No growth ticking yet.
Added a blank 'server.ip' key to the default glowstone.yml.
Call PlayerMoveEvent.

Based partially on the code of @JeromSar. The event is called more often
than CraftBukkit due to the lack of movement buffering.