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
Assuming the file extension is ascii only a cast would specify the tolower function from cctype header:
```c++
static_cast<int (*)(int)>(std::tolower)
```
otherwise (non-ascii) you need a locale for correct conversion like described [here](http://www.cplusplus.com/reference/locale/tolower/), for example:
```c++
#include <iostream>       // std::cout
#include <string>         // std::string
#include <locale>         // std::locale, std::tolower

int main ()
{
  std::locale loc;
  std::string str="Test String.\n";
  for (std::string::size_type i=0; i<str.length(); ++i)
    std::cout << std::tolower(str[i],loc);
  return 0;
}
```