The Witness hlsl2glsl changes

Hi Aras, here's the changes we discussed - looks like implicit casting of int or float to bool for unary '!' operators was already handled in one of your interim updates, so there's just the three commits.

Andy