Wrapper of LLVM OCaml interface, now for LLVM 3.2

  • Basically written for LLVM 2.8 but quickly ported to 3.2
  • Phantom types for llvalues for more type safety
  • Renamed functions in more module oriented manner
  • Builder monad to avoid writing builder arguments everywhere
  • Module functor to avoid wrting module arguments everywhere