Set encoding on String::find_character's result.

Previously it was always ASCII-8BIT regardless of the encoding of the
reciever.
Use byte indexes in StringIO#getc.

Previously it treated d.pos as a character index and indexed into the string,
even though StringIO#getbyte treats d.pos as a byte index.

This makes getc work properly with getbyte (fixes #2282).

This also makes it much more efficient, since string indexing for
non-fixed-width encoded strings such as UTF-8 strings takes linear time
(fixes #2281).
Use .bytesize on result of String#find_character.
Add spec for StringIO#getc with multibyte strings.
Copy changes in 1.9 stringio to 2.0.

See commit 53290f97322ffeb08c641ee9cda0fb1f65f097fc.
Add myself to AUTHORS.
Merge pull request #2283 from tsion/stringio-fixes

Fixes for StringIO#getc