Fix CodeModel output for elseif conditionals

If a conditional statement had `elseif` instead of `else if` in the chain, the
CodeModel output didn't handle this case at all.

This fixes 3 separate errors:

* Vector property header was being printed to stdout due to usage of `printf`
  instead of `cg.printf`
* Blocks were being closed before the final falseBlock property was output.
* Each iteration after the first one opened 2 objects and a vector, but the
  closing loop only closed 1 object and the vector, leading to knock-on errors