Fix two bugs in the new do_open() implementation for HTTPHandler.

Invoke the standard error handlers for non-200 responses.

Always supply a "Connection: close" header to prevent the server from
leaving the connection open.  Downstream users of the socket may
attempt recv()/read() with no arguments, which would block if the
connection were kept open.
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 87de229..f38a4a3 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -461,7 +461,8 @@
             self.assertEqual(http.method, method)
             self.assertEqual(http.selector, "/")
             self.assertEqual(http.req_headers,
-                             [("Foo", "bar"), ("Spam", "eggs")])
+                             [("Connection", "close"),
+                              ("Foo", "bar"), ("Spam", "eggs")])
             self.assertEqual(http.data, data)
 
         # check socket.error converted to URLError