Unified mesh layer mapping

* Unifies the interface of MeshLayerMapper and LayeredVolume and introduces base class for these two  to handle common functionality.
* Allows to create prism-meshes from incomplete layers or conflicting information and unifies/simplifies GUI dialogue for inputting the relevant information.
* Moves ascii-raster I/O to FileIO
I read in the manual somewhere that it uses only float, but maybe that has changed by now.
Anyway, I tried the above source code with a few multi-layer case studies, e.g. from SUMAR and WESS projects, and using a smaller threshold results in tetgen telling me that triangles are overlapping, which it cannot handle. The error may be located somewhere else in my code and the threshold-thing may only be a secondary effect, but I haven't found anything else...