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.
@ronawho  do you like this change? (I think it will make LLVM+C backends easier to maintain).