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`
commandline-documentation: mention `sandbox` command again

(mistakenly got removed when restructuring)
Merge branch 'documentation' of https://github.com/lspitzner/cabal