Fix predeclaration of structs - ensure we have a single type

e.g. when parsing a struct's members, and so on. This makes debug
emission better as there's only one struct (per scope).
Reproduce debug emission - const void type is incorrect
Ensure self-referencing debug symbols aren't emitted

This was previously causing gdb to crash (stack overflow)
Fix const-void debug type emission - ensure it's caught
Move const-void debug test
Don't emit enum-forward warning if preparse
enum warnings are emitted at the enum's location
Merge branch 'fix/debug-symbols-const'