Better way of checking for group permissions.

So this particular problem was a rather interesting one that took a few
frustrating hours of debugging to figure out what the hell was going on.

Lets start with an example. Consider you have the directory /tmp/foo with the
user set to "root" and the group to "rvm" while you're logged in as "alice". On
MRI method calls such as `File.writable?` would correctly indicate that Ruby
could write data to this directory/path. On Rubinius however this would not be
the case. As a result this in my case prevented RVM from installing Gems since
RubyGems would think it couldn't write to the Gems directory (even though it
actually could).

The cause of the problem is as follows: when checking for group ownership
Rubinius would only check if the primary group had write access instead of
taking all the user's groups into account.
Specs for taking different groups into account.

These specs test the changes made to take non primary user groups into account
when calling Rubinius::Stat#grpowned?.
Add specs on Kernel.#Hash for 2.0 mode.
Implement Kernel.#Hash for 2.0 mode.
Update stale spec/README link 

Updates the old lighthouse url to what I think is the equivalent on rubini.us
Add spec for IO.read using the given external encoding
Pass the given options hash from IO.read into File.new
Add specs for passing an Encoding object as the :encoding option
Add support for passing an Encoding object as the :encoding option
Untag passing specs
Cleanup constructor for MachineCode
Merge pull request #2558 from baroquebobcat/patch-2

Update stale spec/README link
Merge pull request #2556 from razielgn/kernel-hash

Implemented Kernel.#Hash for 2.0 mode.
Remove empty spec file that collides with specs for Hash
Add Kernel.#sleep specs when given interval is negative or a Rational
Fix Kernel.#sleep with negative or a Rational interval
Add Mutex#sleep specs for negative interval
Fix Mutex#sleep with negative interval
Extract out UTF-8 logic handling into util

This code doesn't depend on any Rubinius internals, so it can be
extracted out into utility helpers. This also provides a place if we add
more optimizations and is easier for a proper attribution.
Merge pull request #2563 from kachick/fix-sleep-arg

{Kernel,Mutex}.#sleep with negative/Rational interval