Add converter from SSA to executable form.

Also, keep improving API.
Allow to get function result type.
Fix de-SSA-izing: should insert move before last jump instruction.
We're interested in predicate name first of all.
We're interested in global var type, not pointer type to it.
preds
Refactor indent printing.
LLVM basic blocks can be implicitly named just the same as tmp vars.

http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-May/062136.html
Function as operand is just global var reference for now.
Fix indenting.
Add call isntruction and getelementptr constexpr support.
Handle global var initializer and add support for ConstantDataArray.
Render function in order of appearance, regardless decl/def status.

Minimizes mismatch with native LLVM tools.
Render function declarations properly.
Workaround implicit block labels issue.
Support more global var flags.
Handle vararg function *declarations*.
Render call to vararg func per language spec.