Raise ConnectionShutdown for closed, defunct errors
Better handling of mid-request conn defuncting

Before this fix, connections to other hosts could be
erroneously defuncted when a request failed.
Correctly count all retry attempts