Refactor model: LayerItem
In this MR the interface of LayerItem has been overhauled to disencourage the use of the string based interface.
While refactoring a new class ItemWithMaterial was introduced to serve as an abstract base class for LayerItem and ParticleItem because both have a "material" property and some parts of the code could be made simplier by using this class.
Relates #52 (closed)