Worked a bunch on llvm initialization and build

I worked on loading a bitcode module of primitives into the llvm codegen
which makes life a lot eaiser in terms of finding functions and
variables from llvm. I also added a bunch of makefile targets
beyond the bitcode generation I added a target for a shared library
and an llvm test program.