'install --enable-tests' shouldn't actually run tests.

Add a new flag '--run-tests' for running tests. Fixes #1647.
Make '--run-tests' imply '--enable-tests'.
Float out 'haddockOptions' from 'haddockCommand'.
Add a 'haddock' section to '~/.cabal/config'.

Fixes #931, #1585.

The new config file section looks like this by default:

    haddock
      -- keep-temp-files: False
      -- hoogle: False
      -- html: False
      -- html-location:
      -- executables: False
      -- tests: False
      -- benchmarks: False
      -- all:
      -- internal: False
      -- css:
      -- hyperlink-source: False
      -- hscolour-css:
      -- contents-location:
Make 'allFlags' return 'NoFlag' by default.

Otherwise this field is by default printed as 'all: False' instead of '-- all:'
in the config file. Ideally, we'd like to print the commented default value.
Make 'trueArg'/'falseArg' create a 'BoolOpt' instead of 'ChoiceOpt'.

'ChoiceOpt' is really an enum, when we were using it is a boolean the default
value wasn't printed correctly in the config file.

Before:

-- hscolour:

After:

-- hscolour: False
Support 'haddock' in 'cabal.config'.
Formatting.
Merge pull request #1707 from 23Skidoo/haddock-saved-config

Add a 'haddock' section to '~/.cabal/config'.
Merge pull request #1728 from 23Skidoo/install-enable-test

'install --enable-tests' shouldn't actually run tests.
Merge branch 'master' of https://github.com/dan-t/cabal
-Wall police
Merge pull request #1758 from dan-t/master

Pretty print 'extensions' and 'tested-with' fields in one line.
Add `integer-{gmp,simple}` and `template-haskell` to list of non-upgradables

This is related to #667 and similiar issues
Rename a function.
Revert "Merge pull request #1758 from dan-t/master"

This reverts commit 3c7a740847e987c0c11750cab97c2859cb43cc27, reversing
changes made to 68d9077c5f091200f87308e032e7c05ff5ea250d.
Revert "-Wall police"

This reverts commit 68d9077c5f091200f87308e032e7c05ff5ea250d.
Revert "Merge branch 'master' of https://github.com/dan-t/cabal"

This reverts commit 0038d05a9d5af1daeae2e160da69f946760813e8, reversing
changes made to c721e85137b4afb7fe879ef365f368d7a23ec43a.
Rename that function again.
Temporarily disable QuickCheck >= 2.7.

It's not supported by latest test-framework. See
https://github.com/haskell/test-framework/issues/2