Shader system

Kind of still work in progress. See comments in programlib_phong.js. But usable.
OK, I guess you're right, changed it to avoid any future pitfalls