Applies color variance to renderer. Each block ID comes with
a unique color. For large areas of the same block type, this
yields a rather bland look. The renderer therefore applies
a random colour, in the range RGB-20 to RGB+20.

This creates a more interesting map to look at.
Rewrite default color palette to contain moderately accurate
colors.
Fixes map renderer to account for non-ID data in a block ID
value. Block ids are stored as a combination of various fields.
For some blocks, this extra data makes up the sub ID. For others,
it defines values like orientation (stairs), light levels (torches),
or power levels (redstone). The Anvil loader can not distinguish
between these cases. This all led to some block IDs not be
rendered properly.

We fix it by testing if the full block ID yields a palette
color. If not, we try again, while masking out the upper
16 bits.
Fixes anvil/Chunk.Surface() to start finding a surface block
at Y=255, if the heightmap does not yield anything useful.