Add a function to copy from a Reader to a Writer

Move copying between streams from io::fs::copy() into a separate fn, adding a NoProgress check from read_at_least.
Initially I wanted to add a write_from_reader() to Writer but it seemed to run afoul of object safety rules.