enrich canvas3D so that faces can be filled and colored

I propose a few changes, in coordination with current work on trac ticket #12212. This will allow to display mesh surfaces with one color per face. And this also fills the surface