Add specs for StringIO#gets and multibyte strings
Fix String#gets for multibyte strings
Add specs for match data matches and taint / untrust status
Add String::encoding_from helper to propagate encoding

This propagates encoding information to a new string from a source
string. This is used for example when creating a substring from a string
to keep information like ascii_only and valid_encoding around.
Infect strings with taint / untrust status for regexp matches
Move method into right place in kernel for Rational

This wasn't exposed before since the specs loaded the library version
which set up the correct version. We need the correct version in the
kernel and not from lib.