Enable stencil optimization

* Instead of blitting the stencil, add a new color framebuffer and
  render the final image into this. Then blit the color framebuffer
  into the default framebuffer. This allows us to use just one
  depth buffer/stencil, which is written in the first pass and then
  read by all subsequent passes.
* Use GL_LEQUAL for the skybox, so that it renders correctly when
  frag.z=frag.w.
* Re-enable stencil writes & testing.
* Disable writes to gl_FragCoord, as these were killing the early
  stencil optimization. Since the depth buffer is shared and all
  rendering is done offscreen, the lighting pass doesn't need to
  write out the depth value manually.