attempt to fix statement_seq problem

This fixes the problem whereby you could have nested function declarations.

I moved function declarations to be top_level_statements, and these cannot be included within blocks.

Within blocks, instead of using statement_seq, which allows for nested function declarations, I made
block_level_statement_seq which allows sequences of anything but function declarations.  Let me know if
this makes sense.