Reworked "extract even lanes" and "extract odd lanes"

Now they call a more general "shuffle vector" builtin instead
Tracing now prints times at start and end of entire pipe
Added unused code for if-then-else and gathers with scalarized indices
Shorted broadcast in IRPrinter

Now you see x8(foo) instead of broadcast(foo, 8)
Fixed a bug with name clobbering in vector let simplification