Extending Mineral-Overlay to support multiple blocks.

With this commit the Mineral overlay is extended to multiple blocks.

A usecase to demonstrate a possible application of the extended functionality:
"Rails Overlay that draws only the rails that are on Cobblestone for a subway map."

With this patch it is very easy to achive that:

MineralOverlay(minerals=[(((0, 0, 0, 66), (0, -1, 0, 4)), (255, 0, 0, 255)),
                         (((0, 0, 0, 27), (0, -1, 0, 4)), (0, 255, 0, 255))])

In this case the overlay will be red for rails on cobblestone and green for
powerrails on cobblestone.
The syntax is (<tuple of conditions>, <target color>)
where <target color> is a 4 tuple with a (r, g, b, a) color
and <tuple of conditions> is a tuple with an arbitrary number of conditions
with the following syntax:
((relx, rely, relz, blkid), ...) where the rel<> parameters specify the relative
coordinates to the block that is checked if it matches bklid.

In the example the fist tuple (0,0,0,66) checks if at the current position is a
rail while (0,-1,0,4) checks if at one below the current position is a cobblestone.
If both are true then the color is used.

To not break compatibility the old notation with (mineral, (r, g, b)) is still valid.

fixes overviewer/Minecraft-Overviewer#556 and fixes overviewer/Minecraft-Overviewer#787