Don't overwrite the body if there are no changes.

Fixes issue #1 .
Instead, make a bodyReader type like dataWriter. You can limit the per-read size in bodyReader.Read if you want, but I find that bufio.Reader uses a sufficiently small limit if you wrap it.