Isometric blocks now overlap vertically

This fixes a problem where hidden blocks were sometimes showing through
to the surface.

Adjusted several constants, as well as height and margin calculations.

Also added a check to avoid drawing the top of a block if it will be
covered by an opaque block or one of the same type. This will save time
and also avoid errors rendering columns of translucent blocks.

This will also pave the way for drawing multicoloured blocks.
Experimental support for block shadows

Blocks now have shadows on the left and right sides. Still some issues
with translucent blocks and custom shapes, but other than that it looks
neat.

Should also try changing adjust_by_lum so we can brighten colours
instead of just darken them.