Reorder arguments for Initialization
Add local initializations to Contractor
actually process all of a code block and return an llvm basic block.

Slightly less jacky than just returning the last instruction.

Exact copy of If statement code generation except both branches are identical.
test multiple parameter passing
test if statements