start injecting the LLVM Code builder into the compiler for better testability
Decouple the LLVM code generator module from the compiler part to improve testability