Consolidate exposed-modules and reexported-modules in InstalledPackageInfo.

A note first: this patch does NOT modify the user-facing experience in Cabal
files; it only changes how we register information in the installed package
database.

This patch takes the exposed-modules and reexported-modules fields in
the InstalledPackageInfo structure and consolidates them into just the
exposed module fields, which now has a Maybe flag indicating if a
module is reexported and, if it is, what the original module was.  I've
also added in a field for signatures although it is currently unused.

The big benefit of this change is that it will make processing at the GHC level
much more uniform when we add signatures: signatures can also be reexported
and the new representation means we can share the code.

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

Consolidate exposed-modules and reexported-modules in InstalledPackageInfo