Feature/basic osg shader

rebased
because you can have different type of texture attributes.
a 'texture' is a texture attribute but you also have old texenv that are texture attribute because they are applied on a texture unit.
I admit that currently we dont have this or we used to but we dont have it anymore. It's the same design than osg.
We could imagine for exampel a TextureGreyScale texture attributes, that would transform the input texture on unit X into greyscale used in the shader.