Fix chunk relighting
In order to make relighting more reliable, move the
emptiness map lookups to their own cache. This allows us
to not clobber/use emptiness map values for chunks that were
not relight during the call.
More importantly, fix a typo where we supplied the wrong chunk
argument to the emptiness change function for chunk neighbours -
this caused the nibbles for the target chunk to be clobbered.
Fix broken edge checks
While edge checks are not currently used, it doesn't mean
they should be broken. Edge checks should be able to happen
on null nibbles for block lighting (sky lighting will not have
nibbles marked null during edge checks).
Make handleEmptySectionChanges non-relaxed serverside
For the server, it should be that the chunks in 1 radius are
loaded during this call.
Fix incorrect neighbour nibble init logic
We need to be copying the whole array, not just
the first 9 values.
Fix potential missed updateVisible calls
rewriteNibbleCacheForSkylight could set a value
in the cache to null and not update the nibble.
Now the call will call updateVisible when
removing nibbles from the cache.
Fix skylight propagation on the -1 chunk section
Allow sources to be set up on y=-16, and fix light
retrieval for y < -16