HLVM updated for LLVM 2.6

I have committed the changes to HLVM that bring it up to date with respect to
the new LLVM 2.6 release:

  http://hlvm.forge.ocamlcore.org/

This required handling of llcontexts and the injection of a call to the new
Llvm_executionengine.initialize_native_target function (that is undocumented)
*before* the JIT EE is created, otherwise LLVM resorts to the LLVM
interpreter which breaks at run-time because it does not fully implement the
IR generated by HLVM.

I've also replaced the garbage collector with a more conventional in-heap
mark-sweep GC. This makes HLVM 2.6x faster than before at allocating
functional data structures but HLVM remains 10x slower than OCaml when there
are many short-lived values (e.g. list-based 10-queens). My benchmark results
indicate that the improvement most likely to give the largest performance
improvement here would be the creation of a nursery generation (and not the
removal of the shadow stack). HLVM still thrashes OCaml on numerical code, of
course.