nir: initial import

XXX split me up
nir: add a glsl-to-nir pass
nir: hack in a post-link conversion

For making sure things don't crash.
nir: add a pass to lower variables for scalar backends
nir: add a pass to remove unused variables
nir: add a pass to lower sampler instructions
nir: add a pass to lower system value reads
nir: add an optimization to turn global registers into local registers
nir: calculate dominance information
nir: add a pass to convert to SSA
XXX more test stuff
nir: add type information to nir_op_info

Also, fix up some copypasta errors.
nir: add a nir_alu_instr_channel_used() helper function
nir: add an SSA-based copy propagation pass
nir: glsl-to-nir bugfixes
nir: fix iterating over sources
nir: lower_variables_scalar fixes
add umod opcode
more validation
nir: add an SSA-based dead code elimination pass