Fix for subtle config override bug
Fix for subtle config override bug

Config keys should be normalized (i.e., have underscores replaced with
dashes) *before* the config dictionaries are merged.

Otherwise, if you set a value in a config file and via an environment
variable both the dash separated key (from the config file) and the
underscore separated key (from the environment variable) end up in the
config dictionary. Usually this doesn't matter because the latter key
comes after the former when the dictionary is iterated over. But in
cases where the two config keys hash to the same value module the size
of the dictionary, the order is reversed and the wrong value takes
precedance.

For instance with 'index-url' there's no problem:

    >>> repr({'index-url': 1, 'index_url': 2})
    "{'index-url': 1, 'index_url': 2}"

But with 'no-index', the value from the config file overwrites the
value from the environment variable:

    >>> repr({'no-index': 1, 'no_index': 2})
    "{'no_index': 2, 'no-index': 1}"

sigmavirus24/pip,mujiansu/pip,Ivoz/pip,luzfcb/pip,James-Firth/pip,jamezpolley/pip,benesch/pip,benesch/pip,nthall/pip,luzfcb/pip,nthall/pip,natefoo/pip,supriyantomaftuh/pip,mindw/pip,jythontools/pip,Gabriel439/pip,zorosteven/pip,alquerci/pip,rouge8/pip,patricklaw/pip,caosmo/pip,harrisonfeng/pip,RonnyPfannschmidt/pip,esc/pip,atdaemon/pip,mindw/pip,ianw/pip,h4ck3rm1k3/pip,dstufft/pip,msabramo/pip,prasaianooz/pip,habnabit/pip,alex/pip,Carreau/pip,yati-sagade/pip,radiosilence/pip,KarelJakubec/pip,jmagnusson/pip,James-Firth/pip,fiber-space/pip,alquerci/pip,squidsoup/pip,chaoallsome/pip,jythontools/pip,zvezdan/pip,davidovich/pip,dstufft/pip,KarelJakubec/pip,ChristopherHogan/pip,erikrose/pip,zorosteven/pip,minrk/pip,zenlambda/pip,erikrose/pip,jasonkying/pip,habnabit/pip,squidsoup/pip,prasaianooz/pip,graingert/pip,chaoallsome/pip,harrisonfeng/pip,rbtcollins/pip,graingert/pip,willingc/pip,xavfernandez/pip,patricklaw/pip,h4ck3rm1k3/pip,qbdsoft/pip,harrisonfeng/pip,rbtcollins/pip,jamezpolley/pip,natefoo/pip,zvezdan/pip,pypa/pip,luzfcb/pip,atdaemon/pip,h4ck3rm1k3/pip,ianw/pip,atdaemon/pip,techtonik/pip,caosmo/pip,qbdsoft/pip,ncoghlan/pip,blarghmatey/pip,fiber-space/pip,alex/pip,willingc/pip,James-Firth/pip,pjdelport/pip,yati-sagade/pip,sbidoul/pip,cjerdonek/pip,jmagnusson/pip,KarelJakubec/pip,jasonkying/pip,wkeyword/pip,jamezpolley/pip,zenlambda/pip,graingert/pip,haridsv/pip,fiber-space/pip,squidsoup/pip,supriyantomaftuh/pip,xavfernandez/pip,mindw/pip,ChristopherHogan/pip,ncoghlan/pip,nthall/pip,mattrobenolt/pip,qwcode/pip,haridsv/pip,supriyantomaftuh/pip,davidovich/pip,prasaianooz/pip,pfmoore/pip,sigmavirus24/pip,wkeyword/pip,tdsmith/pip,alex/pip,sigmavirus24/pip,domenkozar/pip,benesch/pip,zenlambda/pip,erikrose/pip,techtonik/pip,cjerdonek/pip,msabramo/pip,ncoghlan/pip,dstufft/pip,zorosteven/pip,RonnyPfannschmidt/pip,davidovich/pip,Ivoz/pip,pradyunsg/pip,mattrobenolt/pip,wkeyword/pip,jmagnusson/pip,natefoo/pip,rbtcollins/pip,sbidoul/pip,Gabriel439/pip,habnabit/pip,pypa/pip,qbdsoft/pip,xavfernandez/pip,qwcode/pip,RonnyPfannschmidt/pip,pfmoore/pip,caosmo/pip,blarghmatey/pip,pjdelport/pip,willingc/pip,yati-sagade/pip,zvezdan/pip,pjdelport/pip,Gabriel439/pip,haridsv/pip,mujiansu/pip,jasonkying/pip,minrk/pip,tdsmith/pip,ChristopherHogan/pip,pradyunsg/pip,esc/pip,esc/pip,rouge8/pip,blarghmatey/pip,tdsmith/pip,chaoallsome/pip,Carreau/pip,rouge8/pip,mujiansu/pip,jythontools/pip,techtonik/pip