Numerous changes involving shaders.
- All are now compiled from a string in a JS file.
- All shaders share the  same decls, and some functions.
- Note the JS multiline string limitations: must end each line with '\n\'
- Partial support for per-object shaders is in place.
This was tested in Windows.