Look through type synonyms when deciding if something is a type literal.

This is needed to make things like this work:

type N = 9
myValue = fromSing (sing :: Sing N)

If we don't look trough the synonym, we get an error that `SingI N` can't
be solved.