Add util.AsyncReader, to supersede util.TimedReader
async-reader.go: Panic when failing to write to pipe
edit: Ditch reader.unreadBuffer