Make code_llvm print a self contained module

Instead of just printing the function, we print a module that contains
the function together with all the necessary declarations. This makes it
possible to load the function into LLVM's opt tool and to directly play
around with the LLVM-IR generated by Julia.