This PR makes it so that you can only add definitions to type constructor namespaces, not to other modules or packages. OTOH it now uses the same name resolution for definition namespaces as is used elsewhere, and adds deferred namespace resolution for Data, Table, and TypeDef. This PR also adjusts the name resolution algorithm to take into account typedefs and aliases.
This PR makes it so that you can only add definitions to type constructor namespaces, not to other modules or packages. OTOH it now uses the same name resolution for definition namespaces as is used elsewhere, and adds deferred namespace resolution for Data, Table, and TypeDef. This PR also adjusts the name resolution algorithm to take into account typedefs and aliases.