Support for variable-sized argument lists

Now dot-definitions are supported:

    (define (arglen . args) (length args))
    ; or the same:
    (define arglen (lambda args (length args)))

    (arglen 1 2 3)   ;=> 3
    (arglen)         ;=> 0

    ;; first arguments 'f' is required, 'seqs' may be empty:
    (define (zip-n f . seqs) ...)