temp commit - work on shaders
Implement multi-pass postprocessing shader.

This allows attaching multiple shader programs, processing the entire
screen as texture. Chaining shaders works, each shader will use
the output of the previous shader as input.