Remember shader uniform locations by shader program. This reduces amount of
uniform location updates each frame, and prepares for more flexible shader loading.
Add possibility to give each model its own shader through a new optional SHADERS directive in the PIE file.