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.
Ah alright, now I see why it's easier/better for the induction vars to have these restrictions. Let me know what you want me to do about this and bounds checking.