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

Fixes #712
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.
Merge pull request #1699 from fhartwig/master

Add a warning for sections that are not on the top level.
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.
checkpoint