Added proper reflection on instances of <type 'method-wrapper'>, e.g.
'[].__add__', to match what the other internal descriptor types provide:
'__objclass__' attribute, '__self__' member, and reasonable repr and
comparison.

Added a test.
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 05fd72e..f594ca8 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -3977,6 +3977,18 @@
     else:
         raise TestFailed, "did not test __init__() for None return"
 
+def methodwrapper():
+    # <type 'method-wrapper'> did not support any reflection before 2.5
+    if verbose:
+        print "Testing method-wrapper objects..."
+
+    l = []
+    vereq(l.__add__, l.__add__)
+    verify(l.__add__ != [].__add__)
+    verify(l.__add__.__name__ == '__add__')
+    verify(l.__add__.__self__ is l)
+    verify(l.__add__.__objclass__ is list)
+    vereq(l.__add__.__doc__, list.__add__.__doc__)
 
 def test_main():
     weakref_segfault() # Must be first, somehow
@@ -4071,6 +4083,7 @@
     filefault()
     vicious_descriptor_nonsense()
     test_init()
+    methodwrapper()
 
     if verbose: print "All OK"