SIGSEGV when applying vtkMaterialInterface filter if the interface is not correctly defined
When the readers produces bad input for the vtkMaterialInterface filter (for example just one material with interface arrays in a mixed cell) then applying the filters results in a crash.
This should not occur and instead we should print a clear message.
For example only one zone is defined in a mixed cell (the minimum is two zones in a mixed cell) and the zone with order 0 is missing. The way the mixed cells informations is created introduces a zone for order 0 but no material is associated with it resulting in a SIGSEV when applying the mixed cell treatment.
The solution here is to change the type of the m_mixed_cells variable of the vtkMaterialInterface::Internal class. Instead of having an std::map<vtkTypeId, std::vector<std::pair<int, vtkTypeId>>> we should use a std::map<vtkTypeId, <std::map<int, std::pair<int, vtkTypeId>>>. This structure associates a global cell id (vtkTypeId) to a map itself associating the order (int) to a pair of (material id, local cell index). We also should ensure that the orders in a mixed cell start at zero and ends at nb_zones - 1 with all intermediary increasing values.