More diff friendly pretty printing of cabal files

Added the new field constructor functions 'listFieldWithSep'
and 'commaListFieldWithSep' to be able to define pretty printing
for fields, where each value of the field is positioned on a new line.

Which fields are nested is currently hard coded in the 'ppField' function.
Revert "Add cabal exec"

This reverts commit 99d912d321a750739475412c4510075675b2b91b.

Looks like Johan managed to botch a merge somehow, see #1786. Or maybe that was
a bug on the GitHub side.
prototype of "cabal exec", missing GHC_PACKAGE_PATH support

Conflicts:
	cabal-install/Main.hs
Set GHC_PACKAGE_PATH in cabal exec

Uses a hardcoded path for the sandbox and also includes both the global and
user package databases, but ending with a `:`.
Calculate sandbox package DB correctly
Remove the user package db from GHC_PACKAGE_PATH

The user and global package DBs are removed from the GHC_PACKAGE_PATH by
virtue of GHC_PACKAGE_PATH no longer ending in a `:`. A reasonable guess as to
the location of the global database is added to the GHC_PACKAGE_PATH.

The global package DB path is probably wrong for custom installations and for
Windows machines.
Use portable method of setting environment
Remove additional test for presence of sandbox
Get global package db from `ghc --print-global-package-db`
Brief comments for top-level functions
Improve exec help text

The arguments to the executable already required separating the from arguments
to cabal. The help text just didn't reflect that.
Without a sandbox just run the executable
Better error reporting for exec in non-GHC sandbox