test.assertIntermediateForm to take SymbolTable argument.

Previously we took a list of symbols to declare before doing the
intermediate code generation, but if we just let the caller set up its
own symbol table then it can set it up whatever way it wants and it can
also probe the symbol table after intermediate code generation to check
whether certain symbols were declared.
Test intermediate code generation for FuncDeclStmt.
Move the DataDeclStmt parsing tests into their own test file.

This is in preparation for expanding the set of tests for this node type.
Test intermediate code generation for DataDeclStmt.