GhcOptions.mappend: use `Data.List.union` where appropriate.

Some Cabal API clients apparently use `foldl mappend` on large lists of
GhcOptions records. Fixes #2110.