Added mark/unmark/reset/ismarked to IOStream, IOBuffer, and AsyncStream
Also added show() for IOBuffer.

* Define mark, reset, unmark, ismarked for IO only.
  This is slightly sketchy, as it assumes that IO.mark exists, but
  is perhaps better than duplicating the code for all subtypes.
Merge pull request #3656 from kmsquire/buffered_reader

RFM: mark/reset for IOStream, IOBuffer, & AsyncStream (addresses #2638)