Add parsing for function declarations
Add parsing for function calls

Also change some previous terminology to distinguish parameters from
arguments.
Implement basic function calls

Scopes are done in kind of an ugly way currently (we copy the execution
environment and jam the variables in), when ideally we'd use a real
scope chain for closures to work right. Also return isn't yet
supported.