Betrayer: Remove NULL byte from shader dumps

Thought I already did this, must have mucked it up.
Add a pre-commit hook that can be used to avoid committing binary shaders

This is a client side hook, so if you want it you need to add it yourself
(refer to the comment). It is useful to make sure you have stripped the NULL
byte from the end of shaders dumped with Helix, since that causes git to treat
them as binary files and won't display their contents for git diff, log, etc.
Betrayer: Use c200 instead of c250 for passing in shader constants

I didn't notice any detrimental effect of using c250, but grepping through all
the shaders the game uses indicates that it might be used for fog.
Add float_to_hex.py to convert floating point to hex

This is from my junk code, but it seems more relevant here.
Add light shaft shader dumped from game
Betrayer: Toggle light shafts with 0 and add better comments