Add uint for scalar shader variables.

 This also fixes a dangerous bug were the uint would be implicitly converted to int and if the most significant bit was 1 then the final value would be very wrong.