New 'install' option: '--allow-newer'.
New function: 'relaxUpperBound :: VersionRange -> VersionRange'.
Solver support for '--allow-newer'.

Implemented by going through all packages in the 'depResolverSourcePkgIndex' and
applying 'relaxUpperBound' to the dependencies listed in 'build-depends'.

Known issue:
'build-depends: a < 3 && >= 2; if (someFlag): build-depends: a >= 5 && < 6'
gets converted to
'build-depends: >= 2; if (someFlag): build-depends: a >= 5'
(4 is now allowed where it previously wasn't).

Example:

    $ cabal install --dry-run ./tst
    Resolving dependencies...
    In order, the following would be installed (use -v for more details):
    array-0.3.0.3 (latest: 0.5.0.0)
    tst-0.1.0.0 (latest: 0.1.1)

    $ cabal install --dry-run --allow-newer=array ./tst
    Resolving dependencies...
    In order, the following would be installed (use -v for more details):
    tst-0.1.0.0 (latest: 0.1.1)
Support '--allow-newer' in 'cabal configure'.
80-col violation.
Bump Cabal/cabal-install versions to 1.19.2.
New 'setup configure' option: '--exact-configuration'.
Hide the '--dependency' flag for 'cabal configure'.

See #1603.
Pass '--explicit-configuration' to 'setup configure'.
Whitespace, formatting.
Don't calculate the list of missing dependencies twice.
Actual implementation of '--exact-configuration'.
Rename 'relaxUpperBound' to 'removeUpperBound'.
Remove duplication between InstallFlags and ConfigExFlags.
Small refactoring for readability.
Comment.
Sanity check: ensure that all flags were specified.
Merge pull request #1604 from 23Skidoo/allow-newer

Implement the '--allow-newer' option for 'configure'/'install'