Pass image buffers forward instead of backward

World will pass its image buffer to region, which will pass it to chunk,
which will draw directly into that buffer.

Previously the chunk would pass an image back to the region, which would
blend it into the region image and pass this back to the world, etc.

This bloats the function signatures a bit but takes out a lot of calls
to memcpy() and combine_alpha().

It also removes some blending artifacts that were showing up in
isometric renders. The fix is visible in the example isometric images
(look for a faint crisscross pattern in the water in previous images).

Also removed a memory leak where ndata[] wasn't being freed.