Preliminary support for custom isometric block shapes

Now we can render blocks in a shape other than a square - useful for
smaller objects such as torches, flowers, grass, fences, etc.

"Colours" have been renamed to "textures" now that they contain shape
data as well.

The CSV file has a new column containing the shape index for each block,
and the new file shapes.h contains the bitmaps for each shape. There is
almost certainly a better way to do this.

Also added a macro for image encoding.