We should retry non-idempotent HTTP requests (like POSTs) too if no bytes were ever written. A fix for #15446 adds tracking of the number of bytes written. This makes this trivial to fix, but it's too late for Go 1.7. Easy to switch early in Go 1.8. Could also use a few more tests.