commandline-documentation: Add `notes` field to commands

- modify any existing commands appropriately
  (move certain contents from the commandDescription to commandNotes)
- modify the `commandHelp` function: reorder the help texts:
  synopsis - usage - description - flags - notes
commandline-documentation: Refactor, purely

- remove makeCommand smart constructor
  (commands are easier to read/handle that way)
commandline-documentation: Rewrite/Add texts for many commands
commandline-documentation: Add and Modify two paragraphs
commandline-documentation: Add some relevant-config-keys
Fix comments in cabal-install/Main.hs
commandline-documentation: Change UserHooks description
commandline-documentation: More description to user-config command
Merge branch 'master' into documentation

Conflicts:
	cabal-install/Distribution/Client/Setup.hs
	cabal-install/Main.hs
Change globalCommands description generation

- previously, runCommands internally modified the description
  by adding the list of commands.
- now, globalCommands is a function that builds the complete
  description without need for changes during runCommands invocation.
- slightly more code duplication, but better separation of concerns
commandline-documentation: Add structure to command listing in `cabal help`
bootstrap.sh: fix transformers version regex

mtl-2.2.1 requires transformers ==0.4.*.
Merge pull request #2268 from tuncer/mtl-transformers-requirement

bootstrap.sh: fix transformers version regex
commandline-documentation: mention `sandbox` command again

(mistakenly got removed when restructuring)
Fix test suite compilation with network 2.6

(cherry picked from commit 5ff933435b16c4224f1ede35fd452cc3933d0408)
Make test suite network dependencies more robust

(cherry picked from commit 5b367e51e8178dd3f208b0dbe6b998b42f61dfc0)
Only test for same cabal-version (but not ghc-ver)

The overly strict test was introduced in
4806aba73d57bcbac08d697046e387af77bd2506
but this breaks GHC bindists. Cabal 1.20 and older
also only checked the cabal version to match but
ignored the compiler versions.

Differing compiler versions per se are considered harmless.

Approved by @dcoutts
Read `setup-config' into a strict ByteString, making sure that the
file handle does not stay open.

This caused permission denied problems on MSYS where the working
temp directory could not be removed after building a package because
of a lingering open file.

Additionally, I've uglified the qualifier for the import of
Data.ByteString.Lazy.Char8, since it's ugly and potentially risky,
and should be clearly visible as such.
Move parts of Distribution.Simple.GHC that can be shared with other
GHC-derived compiler flavors to Distribution.Simple.GHC.Internal
Add GHCJS support to the Simple build infrastructure