Deserialize all function TypeReps
Deserialize all function TypeReps

Previously, we could only deserialize `TypeRep (a -> b)` if
both `a` and `b` had kind `Type`. Now, we do it regardless of
their runtime representations.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D4137

shlevy/ghc,sdiehl/ghc,sdiehl/ghc,sdiehl/ghc,sdiehl/ghc,sdiehl/ghc,ezyang/ghc,ezyang/ghc,shlevy/ghc,ezyang/ghc,ezyang/ghc,ezyang/ghc,shlevy/ghc,shlevy/ghc,ezyang/ghc,sdiehl/ghc,shlevy/ghc,sdiehl/ghc,shlevy/ghc,ezyang/ghc,shlevy/ghc