Fixed one-value AbstractShaderProgram::setUniform().
Fixed one-value AbstractShaderProgram::setUniform().

The original workaround for enums didn't work (all enums were treated as
UnsignedInt even though they had Int as underlying type), moreover the
solution didn't scale for other possible types with implicit
conversions. Now explicitly listing all scalar types and templated
vectors/matrices, it should work for most cases.

MiUishadow/magnum,DerThorsten/magnum,MiUishadow/magnum,DerThorsten/magnum,ashimidashajia/magnum,MiUishadow/magnum,DerThorsten/magnum,ashimidashajia/magnum,ashimidashajia/magnum,MiUishadow/magnum,MiUishadow/magnum,DerThorsten/magnum,MiUishadow/magnum,DerThorsten/magnum,ashimidashajia/magnum,ashimidashajia/magnum