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'.