Revi & Revo binary introduction and hygienic macro fix

the implementation of hygienic macro is that the free variables in a
hygienic macro should be wrapped with dynamic closures. Before I
misunderstood this meaning. For example:

(define a 5)
(define-syntax oh
  (syntax-rules ()
    ((oh)
     (display a))))

; (define a 5)
((lambda (a) (oh)) 4)

This code will display 5 rather than 4, as before the free variables
are still evaluated in the runtime scope but it should not be like so.

Revo & Revi binaries:
Mostly directly copied from the previous revo implementation, in this
version there's just a few changes in interface:
   * the global configurable var `revi-ps1` is renamed to
     `revi-prompt`
   * new configuration flag `revi-backtrace`, boolean, indicates
     whethere should it display backtrace when it encounters an error.
many bug fixes and in debugging