Support module thinning and renaming Cabal-side.

Unlike GHC, Cabal will still try to find a globally consistent choice for
all package names, i.e. this does *not* implement private dependencies.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Merge pull request #2038 from ezyang/ezyang-renaming

Support module thinning and renaming Cabal-side.

Travis failure is due to https://github.com/haskell/cabal/issues/2114