Recover from failures while writing a POST body.

This introduces failure recovery in the output stream. It means
we should be able to recover from any kind of failure that could
be triggered by aggressive connection pooling.

The recovery buffer is 8 KiB. I anticipate this should be more
than enough to detect that an HTTP post is going to a black hole.
Merge pull request #153 from square/jwilson/recovery

Recover from failures while writing a POST body.