Add specs for marshalling exceptions

This was causing a problem with the Rails specs and also relates to
issue #1123
Fix marshalling Exception

Fixes #1123
Handle constant handling for unmarshalling directly

This catches the exception at the place where we raise it. This also
allows for a message similar to MRI, which apparently Rails depends on
in their code.
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