Use call fallback when type bits check fail

When an object is inflated, the type bits check fails, so we have to
fallback to the helper function. In the future we should make it so that
type bits are in the object header, even for inflated objects.

Fixes #2205
Add specs for multibyte strings and String#(tr|tr_s)
Ensure String#(tr|tr_s) work properly with multibyte strings

Fixes #2157
Remove tags for passing specs
Setup thread name for agent thread
Remove unused Ruby Agent side

We don't have anything of this at the Ruby side atm, so removing it for
now. We should see how we want to handle this in the future and set it
up properly.

Fixes the hang mentioned in #2197
Compiled code only needs to be on stack if internalized

We only need to mark this as on stack when internalizing, since only
internalize could cause a lock and needs the compiled code object to be
updated.
Use a special update method for updating GC references in inline caches

Problem here was that using assign() also resets the hit counters,
leading to wrong heuristics on whether a method is called often or not.
In certain cases this could lead to hot methods not being inlined.
Cleanup duplicate rbx_get_ivar helper
Blog post: PDX Summit Recap.
Regen'd website.
Fix typo
Merge pull request #2218 from adzankich/io19_typo

Fix typo in io19.rb
Remove exports for symbols that are available for libc_nonshared

Apperently on RHEL / CentOS 5.9 this breaks the compile since these
symbols are exported there. Also checked against Ubuntu and the symbols
are available there too.

Fixes #2217
Return empty Hash if there are no coverage results.
Updated CI specs to RubySpec d906aaf0.
Ivar reading only reads memory and doesn't modify
Print class name we read ivar from in JIT debugging

Make it easier to see what the class is we guard the ivar read against.
Setup self class for block based on creator info

This allows the JIT to inline ivar reads inside inlined blocks, for
example in cases like this:

def foo
  ary.each {|e| e == @bar }
end
Allow for compiled blocks to also have a receiver class

Before the additional data was either a block environment or a receiver
class, but having a receiver class is also useful for compiling blocks.
This matters for example for inlining instance variable reads if just a
block is compiled.

Improves benchmark/tiers/0/bm_vm1_ivar.rb significantly:

Before:
=== bin/rbx ===
  ivar read 58492061.6 (±3.0%) i/s -  289205872 in   4.948913s
   ivar set 41165744.5 (±2.6%) i/s -  204915000 in   4.982051s

After:
=== bin/rbx ===
  ivar read 266371814.2 (±5.6%) i/s - 1283690000 in   4.836606s
   ivar set 224551559.4 (±4.0%) i/s - 1110346272 in   4.953298s