Revert "Get rid of bool type in Core language and use 1 and 0 instead."

This reverts commit 5215d8dba730513919bcc74afe87c05af5c0e77b.

LLVM distinguishes bool type (i1) from int (i32).
Revert "Remove VTrue and VFalse and use VInt 1 and VInt 0 instead."

This reverts commit 82faefb5e479817dcfc7b83abdf9b9d29aba03db.
Add LLVM backend.

CPP.Core.CodegenLLVM module is taken from:

Implementing a JIT Compiled Language with Haskell and LLVM
http://www.stephendiehl.com/llvm/