Fix known failure suffixes

This is similar to my fix in https://github.com/facebookgo/httpcontrol/pull/2 for `no such host`, but I since realized that the issue with the trailing periods affects other errors from being retried as well. This does the following:

 - Removes trailing periods from other errors. As far as I can tell, none of these will have trailing periods.
 - Replaces strings with constants from where the errors originate where possible. The others are private fields or generated within private functions in other packages.
 - Adds a retry for `io.EOF` with a test show how this can happen. (This has happened to me a few times in production so far.)