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
```std::string::compare``` checks the string sizes for you. ```operator==``` is overloaded for std::string and should use compare for its implementation. So Karstens implementation should be correct.