Move test.test_support.catch_warning() to the warnings module, rename it
catch_warnings(), and clean up the API.

While expanding the test suite, a bug was found where a warning about the
'line' argument to showwarning() was not letting functions with '*args' go
without a warning.

Closes issue 3602.
Code review by Benjamin Peterson.
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 62cd0c7..2830ad7 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -67,12 +67,13 @@
 """
 
 import socket
+from sys import py3kwarning
 from urlparse import urlsplit
 import warnings
-from test.test_support import catch_warning
-with catch_warning(record=False):
-    warnings.filterwarnings("ignore", ".*mimetools has been removed",
-                            DeprecationWarning)
+with warnings.catch_warnings():
+    if py3kwarning:
+        warnings.filterwarnings("ignore", ".*mimetools has been removed",
+                                DeprecationWarning)
     import mimetools
 
 try: