do not use MaterialItemProperty to access material identifier
instead use ItemWithMaterial. This makes the handling more understandable and as a second effect reduces code complexity
and:
- use concrete types like ItemWithMaterial* instead of SessionItem*
- use QVector instead std::deque + QVector to simplify code
- remove now obsolete code
- adapt unit tests