Check TravelAgent.findOrCreate(Location) for null; Fixes BUKKIT-3590

If a custom TravelAgent is used and returns null for findOrCreate method
a NullPointerException will occur.
Conflicts:
	src/main/java/net/minecraft/server/PlayerList.java

Conflicts:
	src/main/java/net/minecraft/server/PlayerList.java
Close inventory on teleport. FIXES BUKKIT-3021.

Conflicts:
	src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
Implement PlayerItemConsumeEvent. Adds BUKKIT-2349
Add proper logging for custom channel exceptions.
Use the correct CB object for ContainerBrewingStand. Fixes BUKKIT-3357
Fix compilation error with exception names
Spigot changes.

Conflicts:
	.gitignore
	src/main/java/net/minecraft/server/BlockCactus.java
	src/main/java/net/minecraft/server/BlockCrops.java
	src/main/java/net/minecraft/server/BlockGrass.java
	src/main/java/net/minecraft/server/BlockMushroom.java
	src/main/java/net/minecraft/server/BlockMycel.java
	src/main/java/net/minecraft/server/BlockReed.java
	src/main/java/net/minecraft/server/BlockSapling.java
	src/main/java/net/minecraft/server/BlockStem.java
	src/main/java/net/minecraft/server/ChunkSection.java
	src/main/java/net/minecraft/server/EntityItem.java
	src/main/java/net/minecraft/server/World.java
	src/main/java/net/minecraft/server/WorldServer.java
	src/main/java/org/bukkit/craftbukkit/CraftServer.java
	src/main/java/org/bukkit/craftbukkit/CraftWorld.java
	src/main/java/org/bukkit/craftbukkit/Spigot.java
	src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java
	src/main/java/org/bukkit/craftbukkit/util/LongHashSet.java
	src/main/resources/configurations/bukkit.yml
Update item merge logic
Include NibbleArray from mc-dev for diff visibility

Conflicts:
	src/main/java/net/minecraft/server/NibbleArray.java
Implement 'lightening' of NibbleArrays - only allocate buffers when non-trivial value Saving from 40-45% of memory use by chunk section data.

Finish up NibbleArray lightening work - use for Snapshots, reduce copies

Fix nibble handling with NBT - arrays aren't copied by NBTByteArray

Conflicts:
	src/main/java/net/minecraft/server/NibbleArray.java
Return LOHS to full operation.
Per world view distance.

Conflicts:
	src/main/java/org/bukkit/craftbukkit/CraftWorld.java
Fix various crop growth modifier formula issues
Add OldChunkLoader from mc-dev for diff visibility

Conflicts:
	src/main/java/net/minecraft/server/OldChunkLoader.java
Fix mcRegion-to-Anvil conversion

Conflicts:
	src/main/java/net/minecraft/server/OldChunkLoader.java
Update versioning check to correctly resolve api version.
Optimize packet used to unload chunks for the client

At the moment telling a client to unload a chunk involves calling the entire chunk from memory, deflating it and then sending it through the pipes even though the client ignores it and based on the bitmap simply unloads the chunk, and to add the cherry on top, this is done on the main server thread.

Conflicts:
	src/main/java/net/minecraft/server/Packet51MapChunk.java
Alternate, sync-free-but-safe chunk reference cache
Tick loop optimization - sleep for as long as possible.

Conflicts:
	src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java
Improved Timings System

Tracks nearly every point of minecraft internals and plugin events to give a good quick overview on what is causing TPS loss.

Conflicts:
	src/main/java/net/minecraft/server/Entity.java