Implement closure argument passing
Fix the handling of missing argument list in closure.
Revamp builtin fn.

* `fn f { }` now defines variable $fn-f instead of $f
* fn bypasses "declare before use" restriction
* `fn f a b { }` is now supported