A check for basic, incorrect constructs like name clashes.
This does basic sanity checking to ensure that port and module item names are not duplicated and that port declarations overlap with their corresponding variable declarations in a sensible way.