Framebuffers

Two major changes:

1. Multi-pass rendering is now supported. So you can render to a texture and then pass the texture through another shader (stuff like edge detection, inverting colors, etc)
2. On the side I added in color based picking. It basically encodes a model ID to a colour and then renders the model to a texture. The texture is sampled and decoded, which allows for the model to be selected. Pressing "1" enables/disables picking. Pick by clicking on a model.