Material dictionnary

Better material handling in Board3D:  when changing the display colors (e.g. with CustomColors3D), a new material is created in the dictionary only if the material doesn't exist yet (MTL file). 
Otherwise, we just reuse the material index in the OBJ file.

For devs:  by default, changing the colors (or mode, or style) creates now a new sub-list in geometrical objects lists (e.g. myCubeSetList). Hence, objects in a sublist share the same material information.