Framebuffer improvements

Color and depth textures are both optional.