Whitespace, 80-col violations.
Workaround for GHC issue 8825.
Merge pull request #2165 from 23Skidoo/ghc-issue-8825

Workaround for GHC issue 8825.
'cabal check': Add a warning for 'ghc-prof-options: -auto-all'.

Fixes #2162.
Cabal...Utils: Add functions listUnion/listUnion/ordNub/ordNubRight.

These functions are from Mikhail Glushenkov's cabal/ghc-options-union
branch.
Cabal: Add a NubList type with tests.

A NubList is a list where all elements are unique, but are maintained in
their original order. The Monoid NubList's mappend implement is just:

    NubList xs `mappend` NubList ys = NubList . nub $ xs ++ ys

which preserves NubList's required properties (ordering and unique-ness
of elements) and meets the requirements of the Monoid laws (identity,
associativity and closure).
cabal-install: Use NubList for list fields of SavedConfig.

User config fields like 'remote-repo', 'extra-prog-path' and 'build-summary'
were lists, which mean that when two SavedConfig types were concatentated
the lists for these fields were concatenated, resulting in duplicate entries.
Duplicated entries in these fields simply don't make sense, so we swicth to
NubList for these fields.

Closes: #2160
Merge pull request #2167 from erikd/nublist

Nublist
cabal-install : Add a 'user-config' command.

The 'user-config' command allows pseudo-diff-ing and updating of the
user's ~/.cabal/config file. The diff is against what cabal would
generated if the user config file did not exist and the update
command overlays the user's existing settings over the current
version of the default settings and writes it back to ~/.cabal/config.

Closes: #2159