Add a spec for String#[]= [regexp, index]

When the index points to unmatched captures.
Fix String#[]= [regexp, index]

When the index points to unmatched captures.
Merge pull request #2314 from kachick/fix-string-element_set_with_regexp-index

String#[]= [regexp, index] raises an IndexError when the index points to unmatched optional captures
Ensure serial checks dereference cache location

Since we have (potentially) moving and replacable caches now, we must
make sure serial checks actually dereference the location they are
stored and not refer to the object directly. This already happens in all
other places in the JIT.