Implement a MapCache api for writing base layer tiles of arbitrary stone.

Precompute some tables in TileTypes for extremely efficient
conversion between tiles of most important material types.
Decode ice under constructions if possible, but never write it out.
Expose new MapCache features in probe and tiletypes.
Remove "using namespace std" from MiscUtils.h.
Use a cast instead of floor in perlin noise for performance.
Support arbitrary expressions in perlin noise rendering script.
Implement reading and writing the map for 3D veins plugin.

This should completely erase all veins from the map when run.
Implement generation of 3D veins that match the existing mineral counts.

Vein distributions may need some improvement.