Specs for Ruby 1.9 API changes to Process.(g|s)et_rlimit

As of Ruby 1.9 `Process.getrlimit` and `Process.setrlimit` can be passed
a resource name in the form of a Symbol instead of a Process::RLIMIT_*
constant.

This commit includes specs for both get and set functions to verify the
correct behaviour of Rubinius' implementation.
Add symbols as resources to Process.(g|s)et_rlimit

As of Ruby 1.9 you can pass a symbol as the name of the resource you're
operating on instead of using the constant form.  For example:

    Process.getrlimit(:CORE)
    => [0, 9223372036854775807]

whereas traditionally one would have used:

    Process.getrlimit(Process::RLIMIT_CORE)
    => [0, 9223372036854775807]

This commit adds behaviour to Process.get_rlimit and Process.set_rlimit
to infer and look up a constant name from a resource name supplied as a
Symbol.
Merge pull request #2161 from jamesotron/symbol-as-rlimit-resources

Add symbols as resources to Process.(g|s)et_rlimit
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
Handle bignum overflow immediately in primitive
Add benchmarks for Float operations
Remove fast math instruction specialization

This actually causes more performance degrations than the advantages it
has. Float operations suffer most from these changes and rather than
changing these specialized instructions for floats, we remove them all
together.

Performance of Fixnum handling doesn't seem to suffer from this change
and the JIT can optimize the regular send() path just as well as these
specialized instructions.
Improved version of the write barrier

In the common case of either setting a non reference value or setting a
variable on a young object, we don't have to call a method but check
this inline. This improves performance for these cases where we don't
need to store an object in the write barrier.
Increase default maximum size of normal methods

This helps in JIT'ing methods where the JIT profile changed because of
now treating + as a regular method. One example here is String#+ which
now can be inlined and benefits from larger maximum sizes.
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.