Depth of field and code cleanup

Resolves #19. Added depth of field using render-to-texture shaders.