Implement PortReader and ChanWriter
auto merge of #10823 : rapha/rust/master, r=alexcrichton

Hi, first pull request here so let me know if I've missed any of the procedure.