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