Add a warning for sections that are not on the top level.

Fixes #712
More diff friendly pretty printing of cabal files

Now the 'fieldGet' function of 'FieldDescr' does the
whole pretty printing of the field. Previously only the
values have been pretty printed by 'fieldGet' and the
name of the field with the colon have been printed
in the 'PrettyPrint' module.

But this separation made it more difficult to handle the
pretty printing of fields differently, because some fields
should be just printed in one lines and others - having several
values - should be printed nested with each value on a new line.

This difference in the printing of the fields is now handled by
the 'FieldDescr' constructor functions in 'ParseUtils'.

Now the 'listField' and 'commaListField' functions create 'FieldDescr'
that nest their values and all other functions create one line
for the whole field.
'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 #1699 from fhartwig/master

Add a warning for sections that are not on the top level.
Remove module 'PrettyPrintIndent' and move function 'indentWith' into module 'ParseUtils'
Add the text of the MIT license to cabal init.
Cabal init: Replace LGPL-2 with LGPL-2.1. The text of the former seems
to have been inaccessible.
Merge pull request #1739 from ianbollinger/init-licenses

Add missing Cabal init licenses
Fix #1569.

* Change `guessPackageName` to translate arbitrary strings into valid
package names.
* Change type of `packageName` flag from String to PackageName and
reject names that do not pass PackageName's corresponding parse
function.
Frozen dependencies are printed on their own lines

A new pretty-print has been introduced `D.ParseUtils.commaNewLineListField`.
It is similar to `D.ParseUtils.commaListField` but has each item on its own
line.

The constraints section of the package environment is pretty printed with
`commaNewLineListField`.
Merge pull request #1748 from ianbollinger/fix-#1569

Fix #1569.
Fix #893 (Broken links in user guide)
Link to haskell.org/cabal/release/... docs instead of Hackage's.