Implement "reexported-modules" field, towards fixing GHC bug #8407.

Re-exported modules allow packages to reexport modules from their
dependencies without having to create stub files.  Reexports of the same
original module don't count as ambiguous imports when module finding
occurs.

TODO: Add some validation checks for the field, e.g. duplicates,
self-referential, etc.

TODO: Syntax bikeshedding.  Implemented syntax:

    Exported:pkg:Orig

but this is not very good.

Here is a syntax proposal:

    "pkg" Orig as Exported

...with some syntax sugar for certain cases. When Exported = Orig:

    "pkg" OrigName

(Unimplemented) Have Cabal figure out which package to use:

    OrigName

Other syntax proposals welcomed.

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