materials revisited

Material was split into two clases. MaterialVisuals works with visual
representation and should be used for nothing else. Materials represents
data structure of materials.