Implement BufReader
auto merge of #8934 : sfackler/rust/bufreader, r=brson