Handle initialiser folding just after we parse a decl

This correctly handles decl initialisation, e.g.
	int x[] = { 1, 2 }, y[sizeof x];
As y's size depends on x's initialiser.
Rename fold_block_decls - it just checks dups/shadows

Since initialisation checks are done during parsing, we no longer need
an init_blk parameter.
Fix scoping for if(int i = ...)
Set a symbol-table's are_params property when creating it
Catch stderr for cpp test
Don't free a decl we've added to scope
Allow unnamed decls / just types as an extension
check.pl will ignore line-zero warnings