adding new shader management system

each shader has its individual object and can be compilled into a master
program