stream: push-back reader

I implemented something similar to http://docs.oracle.com/javase/7/docs/api/java/io/PushbackReader.html last week thinking I needed it for the XML parser, but I ended up with a top-down parser that do not need to backtrack by more than one octet.
`if buf.length <= 0 then return parent.read_all`