Move ThreadState to VMThreadState
Setup Ruby side object for ThreadState

For code that heavily uses ensure blocks, creating these thread state
objects had quite a big overhead. We were abusing the Rubinius::Internal
exception for this behavior and spend a lot of time for that code in
symbol lookup for the instance variables.

This solution removes the need for any symbol lookup and this also helps
in concurrent scenarios since symbol lookup needs a lock around the
symbol table.
Remove peep hole optimization on JIT

This optimization was problematic, since it assumed the called block was
unpacking the block. This logic wasn't properly handled in at least 1.9
mode, so removing this for now so we can design for a better version of
this.

Running the specs for datamapper/dm-core in 1.9 mode exposed this:

https://github.com/datamapper/dm-core/commit/3cb3f05483a185f02c3483f3af0d9d6f8e577858