Add spec for issue #1917
Fix issue #1917
Move 1.9 specific spec into a different file
Merge pull request #2495 from darkgrin/issue1917

Fix for Issue #1917
Fixed incorrect spelling of "occurred".
Removed an unused variable in kernel/loader.rb.
Revert "Fix timeout issue"

This reverts commit 97416082698c88ffdad4131db155ff152d24baeb.
Fix crash on unexpected abort / VM exit
Properly fix timeout for nested requests

This together with the revert of
97416082698c88ffdad4131db155ff152d24baeb makes sure that timeouts work
properly without spurious interrupts.

The spurious interrupts where caused by a new timeout request being
scheduled and triggering a reschedule. This would cause the sleep
timeouts to be updated, but also for the new request.

This means the new request already had time subtracted before a timeout
really happened. The fix therefore is to only add the new request after
we've handled sleep time updates.

Fixes #2499
Fixed naming Heroku package files.
Use simpler digest methods. Thanks Terrence. [ci skip]

No idea why the other code was written like that.
Cleanup specs for Kernel.#warn
Add specs on Kernel#warn for 2.0

https://github.com/rubinius/rubinius/pull/2500#pullrequestreviewcomment-5416715
Fix Kernel.#warn for 2.0
Remove staging dir during configure. Fixes #2502.
Warn if prefix exists, error if it's a file.
Split out beginning of lookup and direct class for object

This also sets up an additional origin field in a class which indicates
the beginning of the lookup chain for this class. This is setup so we
can use this for implementing Module#prepend.

In a lot of places we also used lookup_begin() as a mechanism to get the
direct class for example for cache comparisons. For this case we
introduce a new better named method called direct_class() so that can be
used to get the actual class.
Add specs for Module#prepend

Based on the Rubyspec pull request submitted by rkh:

https://github.com/rubyspec/rubyspec/pull/141

This fixes a typo and adds a few additional specs for behavior that
should be verified.
Implement Module#prepend

This sets up prepending. What it does for subclassing is making sure the
subclass points to the origin class, which could be an included module.
This is done so that method lookup is still simple.

First this was attempted by walking back into the origin during lookup,
but this was causing issues with infinite loops. This approach turns out
to be much simpler in it's implementation.

Implementation is also very loosely based on some experimentation done
in #1848

Fixes #1848
Updated rubygems to 2.0.6.