Add spec for StringIO with different encodings
Add String#byte_append and have StringIO use it

StringIO needs to binary add data together without doing any conversions
etc. This new primitive allows it to do that.

Fixes an issue with the ActiveSupport specs.
Update to latest logger from stdlib 1.9.3
Add specs for Regexp#match with a negative position
Fix Regexp#match with negative position from X19
Add specs for String#match with a negative position
Fix String#match with negative position from X19
Handle invalid encodings when calling String#gsub and String#gsub!
Ensure to reset valid and ascii_only flags when setting encoding
Merge branch 'razielgn-feature-gsub-raise-on-invalid-encoding'
Merge pull request #2408 from kachick/fix-match-negative_pos

{Regexp,String}#match should work with negative positions
Move setting sleeping status just before we actually might sleep

This makes sure we do this at the last possible moment.
Add and fix sharing specs for Range#{cover?,include?,member?,===}
Fix Range#{include?,member?} for X19

It should basically depend element.succ from X19.
And old behavior is keeping by Range#cover?.

Example
-------

    ('a'..'c').include? 'bc'

Results
-------

* MRI 1.8.7    #=> true
* MRI 1.9.3    #=> false
* Rubinius X18 #=> true
* Rubinius X19 #=> true  #Fix here
Location#method_module can be nil here
Also use serials for JIT specializations

This uses the same check now as the cache invalidation, ensuring we
don't use old jitted code versions.
Add specs for Class#initialize when given the Class
Fix Class#initialize when given the Class on X19
Add back -fPIC to CCDLFLAGS

Also see 22225807eb87f1d2b16c102a6cbdde75062b32b5
Add specs for Module#append_features