Improve build reporting for cabal-install

This pull request includes two changes:

1. `cabal-install` can now generate reports for dependency solver failures. This is effectively equivalent to PR #2008, with the added feature that if the `--build-log` option is given, `cabal-install` will save the solver output as well.

2. `cabal-install` now also creates reports for *all* targets, regardless of whether they were specified by name or local directory or URL. This closes #1189 and may help with haskell/hackage-server#74.