Updates to marked buffering

* Removed IOStream from BufferedReader
* Modified IOStream to allow marking
* Split out mark(), unmark(), seekmark(), and related functions
  to iomark.jl
* Updated IOBuffer functions to better handle marking
* Added tests for marking of AsyncStream