Add spec for MatchData named capture behaviors in Ruby 1.9-2.1

Asking for a named capture returns the corresponding match, but only the
last one if multiple matches are made.

Accessing a non-matching named capture returns nil, while accessing an
undefined one gives an IndexError.
BUG: Return last *matching* named capture instead

MRI 1.9 and up to 2.1 returns the last *matching* index for a named
capture group that is present multiple times in the same regex.
Rubinius, on the other hand, returned the *last* index, even if it did
not match.

Example:

  regexp = /(?<word>foo)|(?<word>bar)/

  # MRI
  regexp.match("bar")[:word] # => "bar"
  regexp.match("foo")[:word] # => "foo"

  # Rubinius
  regexp.match("bar")[:word] # => "bar"
  regexp.match("foo")[:word] # => nil

Implementation uses #reverse_each chained with #find to find the last
non-nil match. Perhaps it would be more performant to loop manually, or
by rejecting every nil match and then taking the last one. I did not
feel that I wanted to benchmark this to any great length, so I left the
implementation that was shortest but didn't access all matches when it
wasn't neccessary.

Fixes #2721
Add additional spec on block arguments with "_".

Simplified version reported by #2678.
Tag failing spec from 37f95dd.
Move new MatchData specs to a better location

I didn't find the existing tests first, but was thankfully pointed in
the right direction by @razielgn.

I've done changes to some of the examples so that they fit in a bit
better with the existing style of the file.
Merge pull request #2723 from Mange/named-captures-fix

Named captures fix
Used simpler code in named captures.
Merge pull request #2726 from razielgn/block-argument-destructuring-failing-test

Failing spec on block arguments with "_".
Updated all socket constants to be compatible with Ruby 2.1

There are a lot of sockets constants that were missing in Rubinius.
This commit adds all of them to harmonize with the newest version of
Ruby.

After run platform.rake a new platform.conf file will be generated with
the right values for the current operational system.

Fixes #2729, rubysl/rubysl-socket#2 and enables to fix puma/puma#393
Merge pull request #2736 from carlosbrando/add-socket-constants

Updated all socket constants to be compatible with Ruby 2.1
Fix Array#slice! when given an end-exclusive range

  array.slice!(i...array.last)

previously would fail, due to overly-aggressive bounds checking. Since
the end of the range exceeded the number of elements in the array, it
would be reduced to a legal array index.

Later code that compensated for end-exclusive arrays wouldn't compensate
for this, however, and so one too few items would be removed.
Test Array#slice! on end-exclusive ranges
Added self to AUTHORS
Merge pull request #2738 from rubinius/fix-array-slice-with-ranges

Fix Array#slice! when given an end-exclusive range
Re-add missing . separator in version string.
Fix "undefined method `expand' for main:Object" in rakelib/vm.rake.
Merge pull request #2743 from kerchanin/patch-2

Fix "undefined method `expand' for main:Object" in rakelib/vm.rake.
Add spec for RBIGNUM_LEN and rounding up

See #2742
Ensure we ceil RBIGNUM_LEN for correct rounding

Fixes #2742
Remove unneccessary gc token tracking in GCData