glsl: fix handling of quadop_vector constant expression

We forgot to handle the case where the base type was a boolean.
WIP: glsl: add as_loop_jump() method to ir_instruction
WIP: glsl: add a foreach_list_reverse macro
WIP: glsl: add dead branch analysis

Will be used for SSA conversion.
WIP: glsl: add loop jump visitor
WIP: glsl: add swizzle_component() to ir_builder

Like swizzle_x(), swizzle_y(), etc., except the index is
programmable.
WIP: glsl: add SSA infrastructure

TODO rest of commit message
WIP: glsl: add ssa_assgin() to ir_builder

ssa_assign() creates an SSA variable and assignment at the same
time. With this, simple sequences of SSA statements can be created
much easier.
WIP: glsl: add pass to convert GLSL IR to SSA form

opt_to_ssa will convert temporaries and local variables to SSA form,
although for now it can't handle array and record dereferences.
WIP: glsl: fixup ir_reader for SSA

TODO finishme
WIP: glsl: add a pass to convert out of SSA form
XXX let me test this