cabal-install: Fix PackageTests using user's config

- previously, tests did not specify config file; default one in ~/.cabal/
  was used. test result depended on non-repository content.
- now, PackageTester has extra parameter for config-file to use.
- the default procedure now is to generate a default config file in
  "PackageTests/cabal-config" and use that.
- specific tests also are able to use non-default config.
cabal-install/tests: Fix variable names; Remove printf debugging
cabal-install/tests: Clean up relative path mess

- add struct PackageTests.PackageTester.TestsPaths
- contains absolute paths for cabal, ghc, cabal-config
- refactor to consequently use this as input for all tests
Merge pull request #2190 from lspitzner/tests

cabal-install: Fix PackageTests using user's config
Improve a warning.

Fixes #2195.
Add packageKey to the Cabal Paths module.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>