User-defined functions (i.e. lambdas)!

Using the foundation from the previous commit, in which I added support
for wrapped lambdas, this commit adds support for generating such
wrapped lambdas upon encountering lambdas in the Scheme code. The
lambdas behave as expected, creating new frames in order to support
closures and variable shadowing.
Add comment support

Now test.scm is properly commented to explain why I've added each part,
namely what each part tests.
Support for printing functions
Support for cons cells

However, we can't have proper lists until I add support for nil. For
that, I'm deciding if I should implement quoted lists first, in order to
make it easy to implement parser support for '().