Adjust method definition place of Process.coerce_rlimit_resource

* process.rb: define -> none
* process18.rb none -> define
* process19.rb define -> define
Fix typo in an exception message
Introduce global interrupt checking
Rename vm into state for State objects
Enable interrupt checking when setting thread step
Cheaper prologue checks for JIT'ed methods

This makes the common case of nothing happening inside the vm a lot
cheaper. It shaves a second off the following script (7.5 to 6.5 seconds
on my machine):

def fib(n)
 if n < 2
   n
 else
   fib(n - 2) + fib(n - 1)
 end
end

100000.times do
  fib(15)
end
Add specs for Process.(g|s)etrlimit on X19

It coreces String as Symbol on X19.
Fix Process.coerce_rlimit_resource for String argument on X19

* MRI accepts String as resource name on Process.(r|s)etrlimit argument.

When passed resource name.

* Don't use #to_sym. Use #is_a? or #kind_of? for check Symbol.
* Use #to_str for check String.
Use env shebangs for pre-installed gems. Closes #2167.
Check if Proc has a block before using it.

The arity check for lambda mode uses the block... the check for whether there
is a block should come first.
Use CompiledCode's name in Proc argument errors.
Use CompiledCode's name in BlockEnvironment argument errors.
Updated bundled rubygems to 1.8.25.
Updated CI specs to RubySpec ee468c6b.
Fixed multi-byte symbol spec.
Fixed Proc#arity specs.
Updated CI tags for 1.8 mode.
Updated MSpec source to b6027016.
Updated CI tags for 1.9, 2.0.
Fixed Thread[.#]abort_on_exception specs.