Fix TileEntities and Blocks getting out of sync. Fixes BUKKIT-3501

Also fixes: BUKKIT-3477 and BUKKIT-3488

Minecraft likes to double check that tile entities get set after they
are placed, however we didn't set tile entities until after our event
was called. This caused the world to have multiple tile entities in a
single block location; to fix this we now set tile entities before
the event.
Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438

By having a single function to process BlockPlacement logic, we make
it so that there is consistent behavior throughout all BlockPlace
events. This should allow for easier troubleshooting and less diffs
in source.

This also fixes BUKKIT-3463 by including the correct coordinates that
were clicked to the event.
Ignore block functions for skulls on BlockPlace. Fixes BUKKIT-3495

Skulls don't normally get block data applied to them, so we shouldn't
apply it either.
Update Fireballs to account for ExplosionPower. Fixes BUKKIT-3460
Adds BUKKIT-3516
Remove erroneous break statement in scheduler. Fixes BUKKIT-3395
Target default world when returning from The End; Fixes BUKKIT-3494

Due to the having to generate new logic to avoid using the customized
PlayerConnection.moveToWorld, entities returning from The End were not
properly calculating their exit target.  This commit corrects that
logic.
Make command blocks only select players on its world. Fixes BUKKIT-3515
When leaving the end, always target the main world. Fixes BUKKIT-3517
Fix contract with Player.getBedSpawnLocation. Fixes BUKKIT-3525

Getting the bed spawn location is supposed to check if the bed is
valid, however, it currently did not do so.
Fix NPE when getting bed spawn location.
Spigot changes.
Update Maven Shade Plugin to version 2.0. Fixes BUKKIT-3213
Address BUKKIT-3286 by firing the inventory close event when a secondary container is closed due to the player entity being destroyed. This covers all edge cases such as server stop / player kick / player quit.
Update item merge logic
Include NibbleArray from mc-dev for diff visibility
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
Return LOHS to full operation.
Update timeout time to new default value.
Per world view distance.
Fix various crop growth modifier formula issues