Accept <no-argument> as the arguments for applications

Previously, this slot was typed as `<arguments>` (in the book it's
left untyped), but that denotes "at least one argument". To keep some
typedness I've made `<argument>` a superclass for `<some-arguments>`
and `<no-argument>`.
Lambda-lifting and collecting quotations

Transformations to
 1. lift each lambda into a function with no free variables
 2. extract the definitions of these functions to the top level
 3. replace lambdas with references to the definitions
 4. extract quotations to the top level and replace with references

There are a handful of "field puns" in the book, e.g., reusing
<variable>'s name slot to store an index. I've tried to point these
out in comments.