Program:  New class that handles communication with shader

Program knows how to load material properties to the shader.
Texture_manager is shared among various programs and knows how to bind textures
from materials.