util.close_on_error: Catch all Exception and close except on StopIteration
connection.py: Use states and require reset() to avoid accidental reuse.
http.client: Close session connection on exception.

Re: chfoo/wpull#177
proxy: Don't log ConnectionError exceptions as errors

re: chfoo/wpull#177