Move varTable logic out of core classes into its own object.
Split synchronized and stamped ivar logic into separate accessors.
Rewire invokedynamic to new accessor logic.

Instead of going through the virtual impl of
IRubyObject.getVariable and setVariable, this patch utilizes the
newly refactored ivar logic to make a more direct path from indy
call sites. Incoming objects are cast to RubyBasicObject to avoid
interface inlining issues. realClass is cached in the call site
as it is for normal invocations. And we dispatch directly to
either the synchronized or the stamped versions of varTable update
logic to avoid constantly checking whether we have Unsafe support.

As a result, red_black sees about a 30% improvement from the
combination of this change and the previous refactoring of ivar
logic into separate paths.
License and document new vartable classes, plus mild refactoring.
Refactor JIT compiler bean a bit.
Cache booleans with indy, so they can fold away.
Add a NodeVisitor for gathering instance variable names.

This commit also adds a method to RubyModule for walking all
interpreted methods.
Add NetBeans fold for bootstrap methods.
Almost wire up logic to walk ivars on first construct of object.
Return constant, frozen String for Thread#status.
Move remaining references to varTable out of RubyBasicObject.