Reference InlineCache through slots in code

This allows for having moving InlineCache's, which makes having them GC
managed even easier, since we don't need to pin them.
Rename number of inline caches in machine code
Store pointer to ConstantCache directly at site

This allows for having a fixed point in memory that the JIT can use in
the future, so we don't have to pin ConstantCache and we can fold the
ConstantCache and ConstantCacheEntry together, while still being thread
safe.

This is the same mechanism that the InlineCache uses by replacing the
symbol that gives the name for the lookup.
Use memory location of constant cache in JIT

This means we don't have to pin constant cache entries anymore because
the jit will dereference them from a known location in the machine code.
This is a next step in allowing to merge ConstantCache and
ConstantCacheEntry back into a single entry object.
The push_const helper already uses fast logic
Fix variable scope race condition

This assertion could result in being hit due to a race condition. This
would happen if we were actually in the middle of flushing to the heap
while another thread reads variables from this scope.

In this situation, it's actually safe to just read the variable, since
the other thread is flushing it so the variable is still the same.
We already know that isolated_ will always be set before the stack goes
out of scope, so in this situation we don't end up reading invalid data.
Reset root call frame in each shutdown step