Fixed multiple string parsing and location propagation

String locations are propagated more explicitly
Pull out unget/getch
retcheck validates the ret argument
Fixed mismatch/definition warning ordering in tests
Moved and update symtable debugging code
Fixed block/argument scoping
Fixed block test
Fixed system_v() return checking
Track location on enum members
New test ignores
Test fixes
Tweaked nested aggregate redefinition checks
More tweaks for context around "struct A;"

We're in new-decl context when in a function, e.g.
f()
{
	struct A; // this creates a new struct (forward) declaration
}
Fresh test run