Begin laying groundwork for functions.

You can define functions now; you can use DEF to do it. Syntax: 'def func param1, param2 { action1; action2; }'.
The syntax for calling functions is there now, but I'm so exhausted from tracking down those reduce/reduce conflicts that I haven't added the implementation to call them yet; if you try it will just yell at you.

Also, the r/r conflicts I had caused by making any 'expr' a valid statement (so that you can call a function on its own line) took me forever to track down, but I found them. Making any expr a valid statement (including numbers and stuff) made things like 'if x -5; else y;' ambiguous (since we have only one token of lookahead.) So now there is a THEN keyword and a DO keyword; the above would look like 'if x then -5; else y;'. The DO keyword is paired up with single statements in a while loop (so 'while x do thing();'.) DO and THEN are not required on the block forms of these conditionals -- you can write 'if x { -5; } else { y; }' if you want, so it's okay.