Functions can now have variable declarations anywhere

I made variable declarations a statement so that functions can have them anywhere in their body. Before they had to be declared at the top of a function. Also right now we have statements ending in semi colons so I updated the func_with_body test to reflect that.
can you avoid moving these large chunks of code. I can't easily tell if you made any changes in it because it shows up as all new code in the diff