Fixes for StringIO#getc

This fixes #2281 and #2282. The specs will be added shortly, once I figure out how to do them.

Here is the output of the benchmark from #2281 after my patch:
```
      user     system      total        real
ascii  0.050000   0.000000   0.050000 (  0.052218)
utf-8  0.053333   0.000000   0.053333 (  0.057995)
```

And now Rubinius acts like MRI in #2282.