LLVM fixes for C for loop, C for loop changes

This is NOT ready to be merged and needs more testing. I'm just putting it here so I can discuss the early versions with @ronawho ... I'm running into problems because C for loop induction variables are read in some cases after the loop body.
Also note that PRIM_MOVE is currently used in c for loops to avoid the ref temps from ASSIGN and the op= operators, but the ideal version will be something like "for (i = start; i < end; i += stride)" (where the = is a PRIM_ASSIGN, and not PRIM_MOVE)