Halo rendering improvements

There's quite a few changes going on here.

Firstly, the code no longer overrides the depth buffer. This doesn't
appear to cause issues with anything and was the main reason that some
brushes couldn't be rendered with halos properly.

It should be slightly more optimal. I've removed lots of unnecessary
render calls which were either not needed at all or just repeated
without need.

That's pretty much it, the output halo should be identical to before.