Add checking for circular typedefs, enums, arrays, structs, etc.
*** This bug has been marked as a duplicate of bug 186768 ***
Migrated to https://github.com/gpuweb/WHLSL/issues/83