add validation of given io
more efficient handling of object buffer
refactor read methods, so read can be called with block
refactored read methods; fixed bug with object buffering
avoid calling requires each time #new is called
delegate accept to io
fix method name collision bug
smarter eof handling: each does not raise EOFError
reuse object buffer