Some GL bug fixes

3ff9980 and 48be833 are pretty straightforward.
d1c341d handles the case where you have an array of primitive types: without the fix you would get "Unexpected naked array as member (expected only one [0], which should be trimmed" since values[4] is exactly 1. Also FillCBufferVariables should not treat arrays of one elements as non-arrrays.
I chose to set "elements" to 0 for non-arrays, which is the same as in the DX11 reflection, but maybe you prefer something else?