implemented Kernel#warn

- also fixes invalid return from StringIO.read