Fix licm for c for loop

Clean up how we insert into the preheader for a c for loop from the loop header.
This insures that when we try to insert into the preheaer we find the correct
block stmt to insert before. We check that we the parent expr is a c for loop
primitive, and then check that it's parent expr is a block, and that blocks
blockInfo is the same c for loop primitive.