I updated according to the suggestions.
There are two conflicting ideas of how to pass uniform values to the backend:
a) Allow the shader_runner to perform transformations of the input values according to the backend and the type provided (so it makes sense to add the "bool" type to the "uniform" directives)
b) Don't allow the shader_runner to perform these transformations, and instead pass the values as if they where binary data, needing the use of more "only" (now called "if") qualifiers.
The first version of this MR was doing (a) but the current one does (b). The disadvantage of (b) is that we have to add more "if" qualifiers, if you think these are too many I can revert to (a).