[OCaml] Build a wrapper for LLVMGetFunctionAddress

Summary:
The get_function_address is straightforward to do, but comes with one
big caveat: getFunctionAddress calls finalizeLoadedModules() upon
finding the requested symbol; this means that all getFunctionAddress
calls must be batched up to do at the end. In C++, it's not possible to
make the mistake because ExecutionEngine takes an std::move'd Module,
indicating that it cannot be reused. In OCaml, we have currently found
no way to tell the user about this "rule", other than in the form of
comments.

TODO, in future patches: make the return type an Option type instead of
raising an Error, for a smooth experience.

Reviewers: whitequark

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6761