Return highest non-air block to match API contract; Fixes BUKKIT-445

This removes direct usage of the nms.World.getHighestBlockYAt method
which returned the highest opaque block used for lighting purposes.

This method also now protects against chunk leaks by unloading any
chunks it loads.

Leaky: https://bukkit.atlassian.net/browse/BUKKIT-445