nfi.Bool32 => nfi.Bool

After inspecting Clang output it appears that it will store booleans in
a structure member as i8 but passes and returns them from functions as
i8. Because our NFI doesn't currently support C++ structures rename
Bool32 to Bool and make it always map to i1
Add case class for LLVM IR labels
Support for LLVM IR global and local variables
Beginning of LLVM instruction generation

- Add irBlock class that has a number of protected methods that can be
  used as builders inside anonymous subclasses. The actual methods are
  grouped in traits that are mixed in to IrBlock

- Add OtherInstrs trait which only implements the phi instruction

- Add TerminatorInstrs which implements ret, br and unreachable