Add io/console extension from MRI with minor modifications

Fixes #2179
blog post: version bumped rbx to 2.0.0.rc1 in heroku blog post
Add MethodCacheEntry to LLVM types
This optimization was problematic and not always correct

A better version should be made so this is actually checked correctly.
This version can also create a fast path for certain cases where there's
a mismatch.
Create inline version for check_serial

This checks the common case of a valid cache inline instead of through
the helper function.
Add better version of kind_of optimization

This makes sure to only do a quick check against VM types since if then
the types don't match, we know the whole chain doesn't match. With the
older implementation there was a problem with subclasses of VM types,
because they share the type info but can't use a quick check.

That is why we now compare against the class_id and not use the TypeInfo
directly.
Added specs for rb_obj_instance_variables
Add rb_obj_instance_variables to the C-API
Fixes #2183
Merge pull request #2184 from Groogy/master

Added rb_obj_instance_variables to the C-API
Add GC guards around open() because there are cases where it can block

Caught during a CI run on Linux. open() can block for example when used
with pipes. Also make sure to handle any errors that might need to be
thrown. Using strdup here is safe, because we already ensure that the
string is a safe C null terminated string.
Make the build ruby error more helpful
Remove mailbox.rb from lib/

This file supported the actor implementation that was removed in
79bd4c3021 and should have been removed with it.
Merge pull request #2188 from jstorimer/master

Remove mailbox.rb from lib/
Fixed Process.getrlimit specs.
Fixed Process.setrlimit specs.
Fixed coercing arguments for Process.[gs]etrlimit on 1.9.
Added RLIMIT constants defined on Linux.
Added missing generated website file. [ci skip]
Use native_int not other types for Tuple sizes
Use native_int instead of size_t for Array