Added an event for changing fog distance

Adds an event for changing fog distance. This event occurs after fog is rendered normally, which makes it much more useful than the current fog density event which takes no consideration of vanilla fog. It is also at much better timing, as other GL functions can be performed to modify fog too if so desired.
Out of curiosity, why do we not just tell the event handlers to set the fog? How does two handlers know to coperate with eachother, which one wins? And what would be the harm of have them set the fog themselves?