Initial support for closures

- This somewhat works.  For example, the following:

    {->A; {->B; A B add}} 3 swap apply 5 swap apply

  ... correctly produces 8.  However there are bugs.  The inner block
  really has to have a scope, otherwise the binding is not found at
  all, and pretty sure there's more.