Add basic ability to save and call functions

This stores functions in the global part of the environment, which for
now is the last thing in the environment. Right now an environment
with only a very basic main() looks something like:

    '(((main true false return)
       ((() ((return 10))) #t #f None)))

The main method is stored as (() ((return 10))) because it takes no
parameters. Currently, the code does not do anything to bind parameters,
so that is perhaps a good thing to add next.

(Although, this is enough to get the test suite to be green once again!)