Make the UserConstraint parser non-ambiguous.
Make the UserConstraint parser non-ambiguous.

`+++` and `<++` are right-associative, so `a +++ b +++ c <++ d` is parsed as
`(a +++ (b +++ (c <++ d)))`.

Fixes #1159.

eric-stanley/cabal,plumlife/cabal,x-y-z/cabal,themoritz/cabal,typelead/epm,Helkafen/cabal,kolmodin/cabal,gbaz/cabal,valderman/cabal,headprogrammingczar/cabal,Helkafen/cabal,rimmington/cabal,sopvop/cabal,ian-ross/cabal,themoritz/cabal,typelead/epm,Peaker/cabal,bennofs/cabal,randen/cabal,kolmodin/cabal,anton-dessiatov/cabal,seereason/cabal,valderman/cabal,plumlife/cabal,trskop/cabal,Peaker/cabal,anton-dessiatov/cabal,mmakowski/cabal,edsko/cabal,kosmikus/cabal,mydaum/cabal,lukexi/cabal,fugyk/cabal,triplepointfive/cabal,mmakowski/cabal,rimmington/cabal,corngood/cabal,fugyk/cabal,gridaphobe/cabal,thomie/cabal,Heather/cabal,fpco/cabal,garetxe/cabal,plow-technologies/cabal,corngood/cabal,beni55/cabal,mydaum/cabal,x-y-z/cabal,christiaanb/cabal,bennofs/cabal,seereason/cabal,mightybyte/cabal,fpco/cabal,christiaanb/cabal,sopvop/cabal,thoughtpolice/cabal,enolan/cabal,martinvlk/cabal,triplepointfive/cabal,headprogrammingczar/cabal,gridaphobe/cabal,thomie/cabal,garetxe/cabal,ghc-android/cabal,lukexi/cabal,Heather/cabal,beni55/cabal,trskop/cabal,randen/cabal,sopvop/cabal,thoughtpolice/cabal,enolan/cabal,gbaz/cabal,themoritz/cabal,eric-stanley/cabal,plow-technologies/cabal,edsko/cabal,ghc-android/cabal,mightybyte/cabal,ian-ross/cabal,martinvlk/cabal,kosmikus/cabal