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.
Expose the .cabal pretty-printer as 'cabal format'.

Make it a hidden command for now, because it's not quite ready for general
consumption yet (fields are reordered, comments are not preserved, etc).

See #1504.
.travis.yml: recache the user package DB after installing GHC.

Should fix occasional DeterministicAr failures we're having.
Add --source-entity-line to haddock invocation

This makes source links to definitions coming from TH splices point to
the actual line of the splice, rather than a (non-existing) name anchor.
Merge pull request #1719 from nandykins/master

Add --source-entity-line to haddock invocation
Merge pull request #1712 from 23Skidoo/cabal-format

Expose the .cabal pretty-printer as 'cabal format'.
Relax a version check.

According to @haasn on IRC, '--source-entity-line' will be supported by Haddock
2.14.
Formatting.
Add Distribution.Compat.CreatePipe
Refactor test runners

The test runners for exitcode-stdio and detailed tests will be separated
into their own modules. They cannot share a test runner because
'--show-details=streaming' does not make sense for detailed tests the
way they are implemented now. The detailed test runner needs to be
substantially rewritten anyway, so splitting up the test runners will
eventually accomodate that goal.
Implement '--show-details=streaming' for ExeV10 tests

LibV09 tests are still non-streaming because those tests do not use
stdout anyway.
Makefile: build setup with -threaded
Disable stdout buffering in test suites

This is a workaround to enable streaming test logs in Cabal's test
suites.
Link custom Setup with threaded runtime
Merge pull request #1727 from ttuegel/test-streaming

Implement '--show-details=streaming' to show test logs in real-time
Output the prologue file in UTF-8 when Haddock >= 2.15.

Fixes #1721.
Merge pull request #1731 from 23Skidoo/issue-1721

Output the prologue file in UTF-8 when Haddock >= 2.15.
'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'.