Emulate File.stream! for a string variable

p.s. I do see why it was probably written this way… there is no guarantee at all that after one call to get_line, another will follow .. it’s just as valid for the next call to be to get one char or 5 chars or whatever … since it can not assume it will just all be a bunch of get_line calls, StringIO is doing its best to return the string to a state where whatever the next call happens to be, it will work.

Still, probably should be keeping some bookkeeping information in its state so it knows where it can pick up from ..