Support unreleased LLVM 3.3 using svn trunk

LLVM 3.3 is still not released. So, note that LLVM's API may change further and
break buidling Rubinius with LLVM 3.3.
Setup metadata for when a compiled code block is a module body

This allows for returning nil from __method__ when inside a Module /
Class body. Also removes tags for now passing specs.
Stop auxiliary threads before stopping the world

This prevents a deadlock where for example the finalizer thread was
halted running Ruby code and had a Thread lock. This caused code after
forking to deadlock. By switching these, we make sure that the finalizer
thread stops at a safe point.
Remove object tracking from inflated headers
Add index to header allocation
Pass state to inflated header retrieval where appropriate
Add STATE parameter to object_id retrieval
Pass down state into header word to inflated header
Remove unused lock_ instance variable
Move to index offset in aux word for inflated headers

This ensures that all object header flag handling always happens inside
the object itself and doesn't depend on the inflated header for that.
This ensures we don't need to deference for accessing these bits.
Change object layout to move type bits to front

This has the advantage that we can do a type check in the JIT that
always works because we don't have to consider inflation now anymore
since that doesn't change the flags layout.
Remove unneccessary null check
Remove unused argument for set_inflated_header
Use an aux word meaning since we use aux word to store inflated header

This changes the setup from a boolean inflated flag, to using an
AuxWordMeaning, since that is now more appropriate since aux word is
also where we store the inflated header index.
Also add the size check for C-API handles
Move C-API handling into ObjectMemory

This is a better place, since ObjectMemory is concerned with memory
management and handle management falls under that. Also makes it
consistent with where InflatedHeaders are managed.
Explicitly cast argument to int
Merge pull request #2242 from ryoqun/support-llvm-3.3

Support unreleased LLVM 3.3 using svn trunk
Make sure to clear InflatedHeader when it's not used
Fix a C/C++ undefined behavior case for bit shifting

The old version bit shifted 63 bits, which overflows an unsigned long on
64 bit systems (it would shift 31 bits on a 32 bit system). This changes
the algorithm to not depend on this behavior.

Caught with the Clang Static Analyzer: http://clang-analyzer.llvm.org