feat(check::typecheck): Add the module as a prefix to each declared type
feat(check::typecheck): Add the module as a prefix to each declared type

There are to gains from this, first it fixes a type safety issue where
two types defined in two different modules could be used interchangeably
even if they had different definitions. Second, it also gives
information of where the type was declared which makes for better error
messages.

gluon-lang/gluon,Marwes/gluon,Marwes/embed_lang,Marwes/gluon,Marwes/embed_lang,gluon-lang/gluon