Set call frame for auto pack and Thread#critical
Handle splats correctly in case statements for the to_sexp representation. Fixes #2076
Move argument setup for call down to where it happens
Add spec for encoded string and partial match

Extracted from #2253
Remove unneccessary sindex usage in String::character_index

This was causing the index variable to be increased twice in certain
loops, causing a wrong index to be returned. Looks like the additional
sindex is also not necessary, so remove that usage as well.

Fixes #2253
Set call frame before another case of potential internalization
Set call frame when checking async events
Implement correct priority of "-" in format strings under 1.9

Ruby 1.9 and 2.0 give higher priority to the "-" (left justify) operator
than to the "0" (pad with zeros) operator when used in format string in
conjunction with numeric values.

See http://ujihisa.blogspot.com/2009/12/string-differs-between-ruby-18-and-19.html
for details.
Properly fix the call_frame setting
Fixed the wrong comments.

The macro name of `NUM2ULONG(x)` implies that it returns an `unsigned long int`,
and according to the signature of `rb_num2ulong`, it does return an
`unsigned long int` instead of a `long int`. It might be a typo in the comments.

```c
/** Convert a VALUE to an unsigned long int. */
unsigned long rb_num2ulong(VALUE obj);
```
Merge pull request #2255 from leocassarani/string-modulo

Implement correct priority of "-" in format strings under 1.9
Merge pull request #2256 from qqshfox/patch-2

Fixed the wrong comments.
Use compare and swap for spinlocks

We want spinlocks to have memory barrier semantics, which test_and_set
do not have. Rather than adding manual memory barriers, switching to
this is easier.
Set object type before setting up klass and ivars
Scan the active C-API handles when GC'ing

We might be doing a GC while having objects active in frames in the
C-API. We need to make sure to scan these objects as well.
Format zero without "0x" prefix when using "%#x" and "%#X" on 1.9
Add failing spec in -X19 and -X20 for shadowing pattern arguments
Fix pattern arguments when shadowing outer variables. Fixes #1953
Scan mature objects in finalizers list

These objects might refer to young objects that need to be scanned. This
is done by treating these mature finalizer objects are promoted so they
are scanned and young objects are kept alive if needed.
Merge pull request #2261 from txus/fix-shadowing-pattern-arguments

Fix shadowing pattern arguments