Fix for SF bug #599836: Don't duplicate headers.

If the request object has a header, it should override the default
header provided by the OpenerDirector.
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 2b01e8c..a8fcc35 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -247,7 +247,7 @@
 class OpenerDirector:
     def __init__(self):
         server_version = "Python-urllib/%s" % __version__
-        self.addheaders = [('User-agent', server_version)]
+        self.addheaders = [('User-Agent', server_version)]
         # manage the individual handlers
         self.handlers = []
         self.handle_open = {}
@@ -771,7 +771,8 @@
         sel_host, sel_path = splithost(sel)
         h.putheader('Host', sel_host or host)
         for args in self.parent.addheaders:
-            h.putheader(*args)
+            if name not in req.headers:
+                h.putheader(*args)
         for k, v in req.headers.items():
             h.putheader(k, v)
         h.endheaders()