Remove global lock for LLVM state

This uses a lock on the shared state so we don't have a global lock
there. Also switches to a spinlock for this case.
Better debugging information for JIT not compiling
If a parent call frame is jitted, compile the method from there

Improves the new Richards benchmark with the following numbers:

Before:
=== bin/rbx ===
        #main(10000)       76.1 (±3.9%) i/s -        384 in   5.057462s

After:
=== bin/rbx ===
        #main(10000)      109.7 (±4.6%) i/s -        552 in   5.041215s
Added Splay benchmark (GC on a large object graph)