For generating fresh names in case of conflicts that can arise due to
local names. For instance, two different modules could define their
own (different) state_t types and use it as a type parameter to some
submodule foo. If that happens, we need to generate new names like foo$state_t
that are distinct. Initially this needs to contain all of top-level
names of the design. We'll extend it with all new module names that
we generate.