Bump versions to 1.15 and 0.15
This is the head branch, the 1.14.x and 0.14.x are in the 1.14 branch.
Add brief description of PVP to cabal init generated .cabal files
Convert ghc option construction to use an options record
Using a structured representation of the ghc options rather
than [String] makes it easier to share and reuse the code
for building sets of ghc options, which makes it easier to
add code for calling ghci.

This is based on Sam Anklesaria's GSoC work on "cabal repl"
Break up the component build code a bit
This will make it easier to allow building individual components
Check for the env var GHC_PACKAGE_PATH
Based on the patch by Keegan McAllister <mcallister.keegan@gmail.com>
Fixes ticket #335
Fix ticket #731
Add back deprecated ghcVerbosityOptions and ghcPackageDbOptions
head cabal-install requires head Cabal
Extend the --package-db= feature to allow multiple dbs and start from empty
Previously only one --package-db flag was used (later ones overrode earlier).
Internally we can handle stacks of package dbs, now we expose that fully in
the user interface.
 --global sets the initial db stack to [GlobalPackageDB]
 --user sets the initial db stack to [GlobalPackageDB, UserPackageDB]
 --package-db=clear clears the db stack to []
 --package-db=global pushes GlobalPackageDB on the top of the stack
 --package-db=user pushes UserPackageDB on the top of the stack
 --package-db=${file} pushes SpecificPackageDB ${file} on the top of the stack
So --global and --user just affect the initial db stack, and this can be
extended by the --package-db flag, or reset using --package-db=clear.

Note that although this lets users tell cabal to avoid using the global
package db, we cannot yet stop ghc from looking at the global package db.
See http://hackage.haskell.org/trac/ghc/ticket/5977

Fixes feature request #437.
Use the new --package-db flag stuff in cabal-install
Added a comment
choose default solver based on compiler version

GHC-6.12 has base-3 depending on base-4. This is a situation the
topdown solver is hacked to deal with, but the new modular solver
currently doesn't support it. We therefore switch back to the
topdown solver if a GHC version before 7 is detected, but switch
to the modular solver by default in all other situations.
adding the possibility for index-disabled packages

In the modular solver, it's now possible to mark packages
as disabled in the index conversion phase. This can be used
to mark broken packages (with missing dependencies) in such
a way that they can still be seen by the solver and reported
in error messages.

Furthermore, the feature could be used to implement
shadowing restrictions. Currently, there are some things
that can go wrong if multiple installed instances of
the same version and package exist on the system. However,
I've not enabled the use of shadowing for now, as it's
hard to match the restrictions exactly, and we can end up
excluding perfectly valid cases. Enabling shadowing
selectively by a solver flag would be an option.
adding a solver flag for shadowing of installed packages
disable line-wrapping for solver debug output
make the reinstall check less noisy

There are two aspects to this change.

The uncontroversial one is that if the install plan contains
reinstalls, we now determine if there are reverse dependencies
of such reinstalled packages that we can see. If so, these
are likely to be broken. If we find such packages, we list
them and state that we can only install the plan if
--force-reinstalls is explicitly stated.

The more controversial change is that if we cannot find such
reverse dependencies, we now merely print a warning but
continue, even though there are situations where executing
the build process can still break packages. The most likely
example of this is that we're installing to the global package
database, and user package databases on the system have
dependencies on the replaces packages -- but we cannot see
these user package databases.
for empty install plans, print the packages that are installed

This is a fix for #623.

If we ask to install a package without --reinstall that's already
there, then we'll show the package and its version in the warning
message and suggest the use of the --reinstall flag.
no longer pre-filter broken packages for modular solver

The modular solver can now deal with broken packages in the
index. I have, however, discovered, that broken packages were
filtered before even passing the installed package index to
the solver. I have made that filtering conditional on using
the topdown solver for now.

Related is the issue that we should not warn about possible
breakage of already broken packages. So we now exclude
already broken packages when considering whether an install
plan contains dangerous reinstalls.
minor wording change when printing install plans
treat packages that are unknown no longer as an "internal error" in modular solver