ast_to_hir: Fix bug in constant initializers.
ast_to_hir: Fix bug in constant initializers.

Implicit conversions were not being performed, nor was there any
type checking - it was possible to have, say, var->type == float
and var->constant_value->type == int.  Later use of the constant
expression would trigger an assertion.

Fixes piglit test const-implicit-conversion.frag.

wolf96/glsl-optimizer,zeux/glsl-optimizer,wolf96/glsl-optimizer,adobe/glsl2agal,benaadams/glsl-optimizer,zeux/glsl-optimizer,dellis1972/glsl-optimizer,mapbox/glsl-optimizer,metora/MesaGLSLCompiler,benaadams/glsl-optimizer,benaadams/glsl-optimizer,djreep81/glsl-optimizer,zeux/glsl-optimizer,wolf96/glsl-optimizer,tokyovigilante/glsl-optimizer,djreep81/glsl-optimizer,bkaradzic/glsl-optimizer,djreep81/glsl-optimizer,tokyovigilante/glsl-optimizer,jbarczak/glsl-optimizer,bkaradzic/glsl-optimizer,dellis1972/glsl-optimizer,benaadams/glsl-optimizer,djreep81/glsl-optimizer,jbarczak/glsl-optimizer,bkaradzic/glsl-optimizer,bkaradzic/glsl-optimizer,KTXSoftware/glsl2agal,zz85/glsl-optimizer,benaadams/glsl-optimizer,mapbox/glsl-optimizer,mapbox/glsl-optimizer,KTXSoftware/glsl2agal,jbarczak/glsl-optimizer,metora/MesaGLSLCompiler,mcanthony/glsl-optimizer,zz85/glsl-optimizer,wolf96/glsl-optimizer,mcanthony/glsl-optimizer,KTXSoftware/glsl2agal,metora/MesaGLSLCompiler,tokyovigilante/glsl-optimizer,dellis1972/glsl-optimizer,benaadams/glsl-optimizer,zz85/glsl-optimizer,jbarczak/glsl-optimizer,zz85/glsl-optimizer,KTXSoftware/glsl2agal,tokyovigilante/glsl-optimizer,mapbox/glsl-optimizer,adobe/glsl2agal,dellis1972/glsl-optimizer,adobe/glsl2agal,adobe/glsl2agal,KTXSoftware/glsl2agal,zz85/glsl-optimizer,djreep81/glsl-optimizer,wolf96/glsl-optimizer,dellis1972/glsl-optimizer,zeux/glsl-optimizer,tokyovigilante/glsl-optimizer,mcanthony/glsl-optimizer,bkaradzic/glsl-optimizer,adobe/glsl2agal,mcanthony/glsl-optimizer,mapbox/glsl-optimizer,jbarczak/glsl-optimizer,zeux/glsl-optimizer,zz85/glsl-optimizer,mcanthony/glsl-optimizer