treat 429 status codes properly

According to [RFC6585](http://tools.ietf.org/html/rfc6585#section-4)
this status code is used to indicate rate limiting has occurred and that
the request should be retried.

Furthermore, the `http_fail` method (L295) handles closing out the socket in a
safer manner, so I have removed the extra call.