Fix licm for C for loops

licm wasn't firing because it couldn't find the "header" of the loop correctly.
This is a little hacky for now to find the correct spot to insert for c for
loops. Also updates basic block construction to move the conditional check to
the top of the body instead of a separate basic block.